home *** CD-ROM | disk | FTP | other *** search
Text File | 1997-09-28 | 5.0 MB | 138,607 lines |
Text Truncated. Only the first 1MB is shown below. Download the file for the complete contents.
- Interrupt List Release 55 Last change 28sep97
- Copyright (c) 1989,1990,1991,1992,1993,1994,1995,1996,1997 Ralf Brown
- --------!---FILELIST-------------------------
- Please redistribute the following files unmodified as a group, in a quartet of
- archives named INTER55A through INTER55D (preferably the original authenticated
- PKZIP archives):
- INTERRUP.1ST the read-me file, containing credits, availability info
- INTERRUP.A INT 00 through INT 12 \
- INTERRUP.B INT 13 through INT 15/11 \
- INTERRUP.C INT 15/12 through INT 16/6E \
- INTERRUP.D INT 16/6F through INT 1A/AF \
- INTERRUP.E INT 1A/B0 through INT 21/2A \ total 2311 pages at
- INTERRUP.F INT 21/2B through INT 21/56 \ 60 lines per page,
- INTERRUP.G INT 21/57 through INT 21/E2 \ 2462 with INTPRINT -p
- INTERRUP.H INT 21/E3 through INT 21/F1 >(8497 entries)
- INTERRUP.I INT 21/F2 through INT 29 / (3721 tables)
- INTERRUP.J INT 2A through INT 2F/26 /
- INTERRUP.K INT 2F/27 through INT 2F/B8 /
- INTERRUP.L INT 2F/B9 through INT 32 /
- INTERRUP.M INT 33 through INT 60 /
- INTERRUP.N INT 61 through INT 66 /
- INTERRUP.O INT 67 through INT 7D /
- INTERRUP.P INT 7E through INT FF /
- INTERRUP.PRI a brief introduction to interrupts
- INTPRINT.COM a simple formatter that also generates a list summary
- INTPRINT.DOC instructions for INTPRINT
- OVERVIEW.LST brief listing of major uses of each interrupt
- 86BUGS.LST a listing of CPU bugs and undocumented features
- BIBLIO.LST bibliography of information sources for the list
- CMOS.LST a description of the CMOS RAM data bytes
- FARCALL.LST APIs available through FAR CALLs
- GLOSSARY.LST a glossary of terms, abbreviations, and acronyms
- MEMORY.LST format of the BIOS data area
- OPCODES.LST a listing of recent and undocumented CPU instructions
- PORTS.LST a listing of I/O ports
- CATEGORY.KEY descriptions of divider-line category letters
- COMBINE.COM combine the pieces of the list into a single file
- COMBINE.DOC documentation for COMBINE
- The following files should be distributed in an archive called INTER55E:
- 86BUGSnn.ZIP programs to test for CPU bugs
- COMBINE.ASM source code for COMBINE.COM
- INT.* invoke interrupts from commandline
- INTHLP??.ZIP Interrupt Helper viewer for the interrupt list
- INTLIST.E Epsilon extension for handling list
- INTPRINT.C source code for INTPRINT
- INTSUM??.ZIP interrupt list browser (Interrupt Summary)
- IVIEW*.ZIP another interrupt list browser
- The following should be distributed in an archive called INTER55F:
- INT2RTF.ZIP Slava Gostrenko's Windows Help converter
- INT2WHLP.ZIP convert list into Windows Help database
- INTERRUP.ICO icon for interrupt list
- HINTSRCH.ZIP WinHelp DLL for full-text searches of interrupt list
- WH_ED*.ZIP WinHelp-file editor
- Finally, the following should be distributed in an archive called INTER55G:
- IL2ME???.ZIP convert list into Multi-Edit help database
- INT2GUID.* convert list into TurboPower GUIDE or POPHELP database
- INT2HLP.ZIP convert list into QuickHelp database
- INT2IPF.ZIP convert list into OS/2 .IPF database
- INT2QH.* program to convert list into QuickHelp database
- INT2TPH.ZIP convert to Turbo/Borland Pascal help file (.TPH)
- INTHELP.* convert list into TurboPower GUIDE database
- RB2NG???.ZIP convert list into Norton Guides database
- --------!---CONTACT_INFO---------------------
- If you notice any mistakes or omissions, please let me know! It is only with
- YOUR help that the list can continue to grow at the current rate. Please send
- all changes to me rather than distributing a modified version of the list.
-
- Please read the file INTERRUP.1ST before asking me any questions. You may find
- that they have already been addressed.
-
- Ralf Brown
-
- Internet: ralf@pobox.com (currently forwards to ralf@telerama.lm.com)
- UUCP: {uunet,harvard}!pobox.com!ralf
- FIDO: Ralf Brown 1:129/26.1
- or post a message to me in the DR_DEBUG echo (I probably won't see it
- unless you address it to me)
- CIS: >INTERNET:ralf@pobox.com
-
- I reply to all e-mail submissions and inquiries, but some of my replies bounce
- because of bad return paths. If you don't get a response from me within a
- reasonable period of time, send it again with a better return path (many
- mailers are improperly configured and do not produce a valid From: address).
- --------!---Note-----------------------------
- See INTERRUP.1ST for the key to system abbreviations and a list of the
- trademarks mentioned here.
- --------!---DISCLAIMER-----------------------
- DISCLAIMER: THIS MATERIAL IS PROVIDED "AS IS". I verify the information
- contained in this list to the best of my ability, but I cannot be held
- responsible for any problems caused by use or misuse of the information,
- especially for those functions not officially documented. If it is marked
- "internal" or undocumented, you should check it carefully to make sure it
- works the same way in your version of the software (and please let me know
- whether or not it works the same way). Information marked with "???" is
- known to be incomplete or guesswork.
- --------!---FLAGS----------------------------
- The use of -> instead of = signifies that the indicated register or register
- pair contains a pointer to the specified item, rather than the item itself.
- One or more letters may follow the interrupt number; they have the following
- meanings: U - undocumented function, u - partially documented function,
- P - available only in protected mode, R - available only in real or V86 mode,
- C - callout or callback (usually hooked rather than called),
- O - obsolete (no longer present in current versions)
- --------!---CATEGORIES-----------------------
- The ninth column of the divider line preceding an entry usually contains a
- classification code (the entry has not been classified if that character is
- a dash). The codes currently in use are:
- A - applications, a - access software (screen readers, etc),
- B - BIOS, b - vendor-specific BIOS extensions,
- C - CPU-generated, c - caches/spoolers,
- D - DOS kernel, d - disk I/O enhancements,
- E - DOS extenders, e - electronic mail, F - FAX,
- f - file manipulation, G - debuggers/debugging tools, g - games,
- H - hardware, h - vendor-specific hardware,
- I - IBM workstation/terminal emulators, i - system info/monitoring,
- J - Japanese, j - joke programs,
- K - keyboard enhancers, k - file/disk compression,
- l - shells/command interpreters,
- M - mouse/pointing device, m - memory management,
- N - network, n - non-traditional input devices,
- O - other operating systems,
- P - printer enhancements, p - power management,
- Q - DESQview/TopView and Quarterdeck programs,
- R - remote control/file access, r - runtime support,
- S - serial I/O, s - sound/speech,
- T - DOS-based task switchers/multitaskers, t - TSR libraries
- U - resident utilities, u - emulators,
- V - video, v - virus/antivirus,
- W - MS Windows,
- X - expansion bus BIOSes, x - non-volatile config storage
- y - security, * - reserved (and not otherwise classified)
- --------C-00---------------------------------
- INT 00 C - CPU-generated - DIVIDE ERROR
- Desc: generated if the divisor of a DIV or IDIV instruction is zero or the
- quotient overflows the result register; DX and AX will be unchanged.
- Notes: on an 8086/8088, the return address points to the following instruction
- on an 80286+, the return address points to the divide instruction
- an 8086/8088 will generate this interrupt if the result of a division
- is 80h (byte) or 8000h (word)
- SeeAlso: INT 04
- --------G-00---------------------------------
- INT 00 - Zenith - ROM DEBUGGER
- Desc: invokes the ROM Debugger when at the BIOS level; equivalent to
- pressing Ctrl-Alt-Ins on booting.
- Note: since DOS revectors INT 00, it is necessary to restore this vector to
- its original ROM BIOS value in order to invoke the debugger once DOS
- loads
- SeeAlso: INT 03"Columbia"
- --------C-01---------------------------------
- INT 01 C - CPU-generated - SINGLE STEP
- Desc: generated after each instruction if TF (trap flag) is set; TF is
- cleared on invoking the single-step interrupt handler
- Notes: interrupts are prioritized such that external interrupts are invoked
- after the INT 01 pushes CS:IP/FLAGS and clears TF, but before the
- first instruction of the handler executes
- used by debuggers for single-instruction execution tracing, such as
- MS-DOS DEBUG's T command
- SeeAlso: INT 03"CPU"
- --------C-01---------------------------------
- INT 01 C - CPU-generated (80386+) - DEBUGGING EXCEPTIONS
- Desc: generated by the CPU on various occurrences which may be of interest
- to a debugger program
- Note: events which may trigger the interrupt:
- Instruction address breakpoint fault - will return to execute inst
- Data address breakpoint trap - will return to following instruction
- General detect fault, debug registers in use
- Task-switch breakpoint trap
- undocumented 386/486 opcode F1h - will return to following instruc
- SeeAlso: INT 03"CPU"
- --------H-02---------------------------------
- INT 02 C - external hardware - NON-MASKABLE INTERRUPT
- Desc: generated by the CPU when the input to the NMI pin is asserted
- Notes: return address points to start of interrupted instruction on 80286+
- on the 80286+, further NMIs are disabled until the next IRET
- instruction, but one additional NMI is remembered by the hardware
- and will be serviced after the IRET instruction reenables NMIs
- maskable interrupts may interrupt the NMI handler if interrupts are
- enabled
- although the Intel documentation states that this interrupt is
- typically used for power-failure procedures, it has many other uses
- on IBM-compatible machines:
- Memory parity error: all except Jr, CONV, and some machines
- without memory parity
- Breakout switch on hardware debuggers
- Coprocessor interrupt: all except Jr and CONV
- Keyboard interrupt: Jr, CONV
- I/O channel check: CONV, PS50+
- Disk-controller power-on request: CONV
- System suspend: CONV
- Real-time clock: CONV
- System watch-dog timer, time-out interrupt: PS50+
- DMA timer time-out interrupt: PS50+
- Low battery: HP 95LX
- Module pulled: HP 95LX
- --------m-02----SI0714-----------------------
- INT 02 U - STB RAPIDMAP.SYS - ???
- SI = 0714h
- ES:DI -> ???
- Return: ???
- SeeAlso: INT 67/AX=6100h"STB",PORT 00E1h"STB"
- --------C-03---------------------------------
- INT 03 C - CPU-generated - BREAKPOINT
- Desc: generated by the one-byte breakpoint instruction (opcode CCh)
- Notes: used by debuggers to implement breakpoints, such as MS-DOS DEBUG's G
- command
- also used by Turbo Pascal versions 1,2,3 when {$U+} specified
- return address points to byte following the breakpoint instruction
- called by Novell DOS 7 EMM386 after displaying an exception error
- message (GPF, illegal opcodes, etc.) and before waiting for user
- input
- called by QEMM-386 if the user presses 'I' (undocumented) when prompted
- after an exception error message
- SeeAlso: INT 01"CPU"
- --------G-03---------------------------------
- INT 03 - Columbia PCs (desktop,VP portables) - ROM DEBUGGER
- Desc: invokes the ROM Debugger if INT 03 has not been revectored; equivalent
- to pressing Esc on booting.
- SeeAlso: INT 00"Zenith",INT 03"Realia"
- --------G-03---------------------------------
- INT 03 - Realia COBOL - DEBUGGER SUPPORT
- Note: Realia COBOL checks for a signature eight bytes prior to the interrupt
- handler when it starts up
- BUG: if the offset of the INT 03 vector is less than 8, the compiler and
- all executables generated by it will crash the system
- SeeAlso: INT 03"Columbia"
- --------G-03---------------------------------
- INT 03 U - Watcom WVIDEO, Watcom WD - OUTPUT DEBUGGING MESSAGE
- STACK: DWORD selector
- DWORD offset of ASCIZ message to display
- Notes: the INT 03h instruction which invokes the debugger must be followed by
- a JMP SHORT and the signature string "WVIDEO"
- to check whether this interface is available, define a public byte
- variable named ___WD_Present, which the debugger will set to 01h
- before running the program
- SeeAlso: AX=0910h
- --------U-03---------------------------------
- INT 03 - DTown Utilities - POP UP
- Program: DTown Software Development's DTown Utilities contains various tools
- which are useful to programmers, such as a memory viewer and
- disassembler
- Note: DTU pops up on INT 03 (if not hooked by a debugger) to allow the
- user to inspect memory or code when the machine crashes; various
- memory managers will invoke INT 03 when displaying a CPU exception
- error message (either automatically or when the user presses a
- particular key)
- SeeAlso: INT 2D/AL=20h"DTown"
- --------G-030910-----------------------------
- INT 03 - Soft-ICE - BACK DOOR COMMANDS - DISPLAY STRING IN Soft-ICE WINDOW
- AX = 0910h
- SI = magic value 4647h ('FG')
- DI = magic value 4A4Dh ('JM')
- DS:DX -> ASCIZ string to display (max 100 bytes, 0Dh OK)
- Program: Soft-ICE is a debugger by Nu-Mega Technologies, Inc.
- SeeAlso: INT 03"WVIDEO"
- --------G-030911-----------------------------
- INT 03 - Soft-ICE - BACK DOOR COMMANDS - EXECUTE Soft-ICE COMMAND
- AX = 0911h
- SI = magic value 4647h ('FG')
- DI = magic value 4A4Dh ('JM')
- DS:DX -> ASCIZ command string (max 100 bytes, 0Dh OK)
- Return: nothing
- SeeAlso: AX=0912h,AX=0913h
- --------G-030912-----------------------------
- INT 03 - Soft-ICE - BACK DOOR COMMANDS - GET BREAKPOINT INFORMATION
- AX = 0912h
- SI = magic value 4647h ('FG')
- DI = magic value 4A4Dh ('JM')
- Return: BH = entry number of last breakpoint set
- BL = type of last breakpoint set (see #0001)
- DH = entry number of last breakpoint to be triggered
- DL = type of last triggered breakpoint (see #0001)
- Program: Soft-ICE is a debugger by Nu-Mega Technologies, Inc.
- SeeAlso: AX=0911h,AX=0913h,AX=0914h
-
- (Table 0001)
- Values for Soft-ICE breakpoint type:
- 00h BPM (breakpoint register types)
- 01h I/O
- 02h INTerrupt
- 03h BPX (INT 03-style breakpoint)
- 04h reserved
- 05h range
- --------G-030913-----------------------------
- INT 03 - Soft-ICE v2.5x - BACK DOOR COMMANDS - SET Soft-ICE BREAKPOINT
- AX = 0913h
- SI = magic value 4647h ('FG')
- DI = magic value 4A4Dh ('JM')
- DS:DX -> breakpoint structure (see #0002)
- Return: AX = status
- 00h successful
- BX = breakpoint number
- 03h breakpoint table full
- 06h memory limit error
- 07h I/O limit error
- 09h range limit error
- 16h duplicate breakpoint
- SeeAlso: AX=0911h,AX=0912h,AX=0914h
-
- Format of Soft-ICE breakpoint structure:
- Offset Size Description (Table 0002)
- 00h BYTE breakpoint type (see #0003)
- 01h DWORD breakpoint address 1
- (lower range limit for memory BPs,
- interrupt number for interrupt BPs,
- address of BP for execution BPs,
- I/O address (only word) for I/O BPs)
- 05h DWORD breakpoint address 2
- (upper range limit for memory BPs,
- optional value to check for for interrupt BPs,
- overlay number (0 = root) for execution BPs)
- 09h DWORD breakpoint address 3
- 0Dh BYTE breakpoint mode 1 (see #0004)
- (for interrupt BPs = register to check
- 00h no value checking
- 01h check AL
- 02h check AH
- 03h check AX)
- 0Eh BYTE breakpoint mode 2 (see #0004)
- 0Fh BYTE breakpoint size (00h byte, 01h word, 03h dword)
- 10h BYTE breakpoint pass count before program stop
- 11h BYTE breakpoint state
- Note: all unused fields should contain zeros
-
- (Table 0003)
- Values for Soft-ICE breakpoint type:
- 00h memory location
- 01h memory range
- 03h I/O
- 04h interrupt
- 05h execution break
-
- (Table 0004)
- Values for Soft-ICE breakpoint mode:
- 01h read
- 02h write
- 04h execution
- --------G-030914-----------------------------
- INT 03 - Soft-ICE v2.5x - BACK DOOR COMMANDS - REMOVE Soft-ICE BREAKPOINT
- AX = 0914h
- SI = magic value 4647h ('FG')
- DI = magic value 4A4Dh ('JM')
- BX = breakpoint number (returned by AX=0913h)
- Return: BX = ???
- Program: Soft-ICE is a debugger by Nu-Mega Technologies, Inc.
- SeeAlso: AX=0912h,AX=0913h
- --------C-04---------------------------------
- INT 04 C - CPU-generated - INTO DETECTED OVERFLOW
- Desc: the INTO instruction will generate this interrupt if OF (Overflow Flag)
- is set; otherwise, INTO is effectively a NOP
- Note: may be used for convenient overflow testing (to prevent errors from
- propagating) instead of JO or a JNO/JMP combination
- SeeAlso: INT 00"CPU"
- --------B-05---------------------------------
- INT 05 - PRINT SCREEN
- Desc: dump the current text screen to the first printer
- Notes: normally invoked by the INT 09 handler when PrtSc key is pressed, but
- may be invoked directly by applications
- byte at 0050h:0000h contains status used by default handler
- 00h not active
- 01h PrtSc in progress
- FFh last PrtSc encountered error
- default handler is at F000h:FF54h in IBM PC and 100%-compatible BIOSes
- since the BOUND instruction also calls INT 05h, but returns control
- to the BOUND instruction, a failed BOUND check will cause an infinite
- loop of PrtScreens unless the INT 05 handler is aware of the problem
- and checks whether the interrupt was invoked by a BOUND instruction
- BUG: some old BIOSes/applications appear to destroy BP on return
- SeeAlso: INT 10/AH=12h/BL=20h,INT 4A"Tandy 2000",INT 5E"TI Professional"
- SeeAlso: INT 80"Phar Lap"
- --------C-05---------------------------------
- INT 05 C - CPU-generated (80186+) - BOUND RANGE EXCEEDED
- Desc: generated by BOUND instruction when the value to be tested is less than
- the indicated lower bound or greater than the indicated upper bound.
- Note: returning from this interrupt re-executes the failing BOUND instruction
- --------P-05454A-----------------------------
- INT 05 U - PSPS v2.01 - EJECT PAGE
- AX = 454Ah ('EJ')
- Program: PSPS is shareware PostScript PrintScreen utility by A.N.D.
- Technologies
- Note: sends a ^D to the current printer
- SeeAlso: AX=4E57h,AX=5053h,AX=554Eh
- --------P-054E57-----------------------------
- INT 05 U - PSPS v2.01 - SET PARAMETERS
- AX = 4E57h ('NW')
- ES:SI -> 11-byte buffer containing new settings
- Return: buffer filled
- SeeAlso: AX=454Ah,AX=5053h,INT 17/AH=63h
- --------P-055053-----------------------------
- INT 05 U - PSPS v2.01 - GET PARAMETERS
- AX = 5053h ('PS')
- ES:SI -> 11-byte buffer for settings
- Return: buffer filled
- SeeAlso: AX=4E57h,AX=554Eh,INT 17/AH=64h
- --------P-05554E-----------------------------
- INT 05 U - PSPS v2.01 - UNINSTALL
- AX = 554Eh ('UN')
- Program: PSPS is shareware PostScript PrintScreen utility by A.N.D.
- Technologies
- SeeAlso: AX=454Ah,AX=4E57h,INT 17/AH=62h
- --------C-06---------------------------------
- INT 06 C - CPU-generated (80286+) - INVALID OPCODE
- Desc: this interrupt is generated when the CPU attempts to execute an
- invalid opcode (most protected-mode instructions are considered
- invalid in real mode) or a BOUND, LDS, LES, or LIDT instruction
- which specifies a register rather than a memory address
- Notes: return address points to beginning of invalid instruction
- with proper programming, this interrupt may be used to emulate
- instructions which do not exist; many 386 BIOSes emulate the 80286
- undocumented LOADALL instruction which was removed from the 80386+
- generated by the 80386+ when the LOCK prefix is used with instructions
- other than BTS, BTR, BTC, XCHG, XADD (486), CMPXCHG (486), INC, DEC,
- NOT, NEG, ADD, ADC, SUB, SBB, AND, OR, or XOR, or any instruction
- not accessing memory.
- SeeAlso: INT 0C"CPU",INT 0D"CPU"
- --------b-06---------------------------------
- INT 06 C - HP 95LX - SLEEP/WAKEUP
- Desc: this interrupt is called just before going into light or deep
- (shutdown) sleep and just after returning from light or deep sleep
- SeeAlso: INT 0B"HP 95LX",INT 15/AX=4DD4h,INT 15/AH=4Eh
- --------V-06---------------------------------
- INT 06 U - no-name clone - GRAPHICS CHARACTER TABLE (NOT A VECTOR!)
- Desc: points at graphics data for characters 00h-7Fh of the current font
- SeeAlso: INT 43"EGA",INT 44"VIDEO"
- --------C-07---------------------------------
- INT 07 C - CPU-generated (80286+) - PROCESSOR EXTENSION NOT AVAILABLE
- Desc: this interrupt is automatically called if a coprocessor instruction is
- encountered when no coprocessor is installed
- Note: can be used to emulate a numeric coprocessor in software
- SeeAlso: INT 09"CPU"
- --------H-08---------------------------------
- INT 08 C - IRQ0 - SYSTEM TIMER
- Desc: generated 18.2 times per second by channel 0 of the 8254 system timer,
- this interrupt is used to keep the time-of-day clock updated
- Notes: programs which need to be invoked regularly should use INT 1C unless
- they need to reprogram the timer while still keeping the time-of-day
- clock running at the proper rate
- default handler is at F000h:FEA5h in IBM PC and 100%-compatible BIOSes
- may be masked by setting bit 0 on I/O port 21h
- SeeAlso: INT 1C,INT 4A"SYSTEM",INT 50"DESQview",INT 58"DoubleDOS",INT 70"IRQ8"
- SeeAlso: INT 78"GO32",INT D8"Screen Thief",MEM 0040h:0040h
- --------C-08---------------------------------
- INT 08 C - CPU-generated (80286+) - DOUBLE EXCEPTION DETECTED
- Desc: called when multiple exceptions occur on one instruction, or an
- exception occurs in an exception handler
- Notes: called in protected mode if an interrupt above the defined limit of
- the interrupt vector table occurs
- return address points at beginning of instruction with errors or the
- beginning of the instruction which was about to execute when the
- external interrupt caused the exception
- if an exception occurs in the double fault handler, the CPU goes into
- SHUTDOWN mode (which circuitry in the PC/AT converts to a reset);
- this "triple fault" is a faster way of returning to real mode on
- many 80286 machines than the standard keyboard controller reset
- --------H-09---------------------------------
- INT 09 C - IRQ1 - KEYBOARD DATA READY
- Desc: this interrupt is generated when data is received from the keyboard.
- This is normally a scan code (from either a keypress *or* a key
- release), but may also be an ACK or NAK of a command on AT-class
- keyboards.
- Notes: this IRQ may be masked by setting bit 1 on I/O port 21h
- if the BIOS supports an enhanced (101/102-key) keyboard, it calls
- INT 15/AH=4Fh after reading the scan code (see #0005) from the
- keyboard and before further processing; all further processing uses
- the scan code returned from INT 15/AH=4Fh
- the default interrupt handler is at F000h:E987h in 100%-compatible
- BIOSes
- the interrupt handler performs the following actions for certain
- special keystrokes:
- Ctrl-Break clear keyboard buffer, place word 0000h in buffer,
- invoke INT 1B, and set flag at 0040h:0071h
- SysReq invoke INT 15/AH=85h (SysReq is often labeled SysRq)
- Ctrl-Numlock place system in a tight wait loop until next INT 09
- Ctrl-Alt-Del jump to BIOS startup code (either F000h:FFF0h or the
- destination of the jump at that address)
- Shift-PrtSc invoke INT 05
- Ctrl-Alt-Plus (HP Vectra) enable keyclick
- Ctrl-Alt-Plus (many clones) set clock speed to high
- Ctrl-Alt-Minus (HP Vectra) reduce keyclick volume
- Ctrl-Alt-Minus (many clones) set clock speed to low
- Ctrl-Alt-SysReq (HP Vectra) generate hard reset
- Ctrl-Alt-S (many clones) run BIOS setup program
- Ctrl-Alt-Esc (many clones) run BIOS setup program
- Ctrl-Alt-Ins (many clones) run BIOS setup program
- Ctrl-Alt-LeftShift-GrayMinus (some clones) turn off system cache
- Ctrl-Alt-LeftShift-GrayPlus (some clones) turn on system cache
- DR DOS hooks this interrupt to control the cursor shape (underscore/
- half block) for overwrite/insert mode
- DR Multiuser DOS hooks this interrupt for cursor shape control and to
- control whether Ctrl-Alt-Del reboots the current session or the
- entire system
- SeeAlso: INT 05"PRINT SCREEN",INT 0B"HP 95LX",INT 15/AH=4Fh,INT 15/AH=85h
- SeeAlso: INT 16/AH=00h,INT 16/AH=10h,INT 1B,INT 2F/AX=A901h,INT 4A/AH=00h"TI"
- SeeAlso: INT 51"DESQview",INT 59"DoubleDOS",INT 79"GO32"
-
- (Table 0005)
- Values for keyboard make/break (scan) code:
- 01h Esc 31h N
- 02h 1 ! 32h M
- 03h 2 @ 33h , < 63h F16
- 04h 3 # 34h . > 64h F17
- 05h 4 $ 35h / ? 65h F18
- 06h 5 % 36h Right Shift 66h F19
- 07h 6 ^ 37h Grey* 67h F20
- 08h 7 & 38h Alt 68h F21 (Fn) [*]
- 09h 8 * 39h SpaceBar 69h F22
- 0Ah 9 ( 3Ah CapsLock 6Ah F23
- 0Bh 0 ) 3Bh F1 6Bh F24
- 0Ch - _ 3Ch F2 6Ch --
- 0Dh = + 3Dh F3 6Dh EraseEOF
- 0Eh Backspace 3Eh F4
- 0Fh Tab 3Fh F5 6Fh Copy/Play
- 10h Q 40h F6
- 11h W 41h F7
- 12h E 42h F8 72h CrSel
- 13h R 43h F9 73h <delta> [*]
- 14h T 44h F10 74h ExSel
- 15h Y 45h NumLock 75h --
- 16h U 46h ScrollLock 76h Clear
- 17h I 47h Home
- 18h O 48h UpArrow
- 19h P 49h PgUp
- 1Ah [ { 4Ah Grey-
- 1Bh ] } 4Bh LeftArrow
- 1Ch Enter 4Ch Keypad 5
- 1Dh Ctrl 4Dh RightArrow
- 1Eh A 4Eh Grey+
- 1Fh S 4Fh End
- 20h D 50h DownArrow
- 21h F 51h PgDn
- 22h G 52h Ins
- 23h H 53h Del
- 24h J 54h SysReq ---non-key codes---
- 25h K 00h kbd buffer full
- 26h L 56h left \| (102-key)
- 27h ; : 57h F11 AAh self-test complete
- 28h ' " 58h F12 E0h prefix code
- 29h ` ~ E1h prefix code
- 2Ah Left Shift 5Ah PA1 EEh ECHO
- 2Bh \ | 5Bh F13 (LWin) F0h prefix code (key break)
- 2Ch Z 5Ch F14 (RWin) FAh ACK
- 2Dh X 5Dh F15 (Menu) FCh diag failure (MF-kbd)
- 2Eh C FDh diag failure (AT-kbd)
- 2Fh V FEh RESEND
- 30h B FFh kbd error/buffer full
- Notes: scan codes 56h-E1h are only available on the extended (101/102-key)
- keyboard and Host Connected (122-key) keyboard; scan codes 5Bh-5Dh
- are only available on the 122-key keyboard and the Microsoft Natural
- Keyboard; scan codes 5Eh-76h are only available on the 122-key
- keyboard
- in the default configuration, break codes are the make scan codes with
- the high bit set; make codes 60h,61h,70h, etc. are not available
- because the corresponding break codes conflict with prefix codes
- (code 2Ah is available because the self-test result code AAh is only
- sent on keyboard initialization). An alternate keyboard
- configuration can be enabled on AT and later systems with enhanced
- keyboards, in which break codes are the same as make codes, but
- prefixed with an F0h scan code
- prefix code E0h indicates that the following make/break code is for a
- "gray" duplicate to a key which existed on the original PC keyboard;
- prefix code E1h indicates that the following make code has no
- corresponding break code (currently only the Pause key generates no
- break code)
- the Microsoft Natural Keyboard sends make codes 5Bh, 5Ch, and 5Dh
- (all with an E0h prefix) for the Left Windows, Right Windows, and
- Menu keys on the bottom row
- the German "Cherry G81-3000 SAD/04" keyboard contains contacts for
- four additional keys, which can be made available by a user
- modification; the three new keys located directly below the cursor
- pad's Delete, End, and PgDn keys send make codes 66h-68h (F19-F21);
- the fourth new key, named <delta>, sends make code 73h
- the SysReq key is often labeled SysRq
- the "Accord" ergonomic keyboard with optional touchpad (no other
- identification visible on keyboard or in owner's booklet) has an
- additional key above the Grey- key marked with a left-pointing
- triangle and labeled "Fn" in the owner's booklet which returns
- scan codes E0h 68h on make and E0h E8h on break
- SeeAlso: #0526 at INT 16/AX=6F07h,#2885 at INT 4A/AH=05h
- --------C-09---------------------------------
- INT 09 C - CPU-generated (80286,80386) - PROCESSOR EXTENSION PROTECTION ERROR
- Desc: called if the coprocessor attempts to access memory outside a segment
- boundary; it may occur at an arbitrary time after the coprocessor
- instruction was issued
- Notes: until the condition is cleared or the coprocessor is reset, the only
- coprocessor instruction which may be used is FNINIT; WAIT or other
- coprocessor instructions will cause a deadlock because the
- coprocessor is still busy waiting for data
- for the 486+, a coprocessor protection error generates an INT 0D
- SeeAlso: INT 07"CPU"
- --------*-09---------------------------------
- INT 09 P - internal hardware - RESERVED BY Intel (80486)
- Note: this exception has been moved to INT 0D
- SeeAlso: INT 09"CPU",INT 0D
- --------H-0A---------------------------------
- INT 0A C - IRQ2 - LPT2 (PC), VERTICAL RETRACE INTERRUPT (EGA,VGA)
- Notes: the TOPS and PCnet adapters use this interrupt request line by default
- DOS 3.2 revectors IRQ2 to a stack-switching routine
- on ATs and above, the physical data line for IRQ2 is labeled IRQ9 and
- connects to the slave 8259. The BIOS redirects the interrupt for
- IRQ9 back here.
- under DESQview, only the INT 15h vector and BASIC segment address (the
- word at 0000h:0510h) may be assumed to be valid for the handler's
- process
- many VGA boards do not implement the vertical retrace interrupt,
- including the IBM VGA Adapter where the traces are either cut or
- removed
- SeeAlso: INT 52"DESQview",INT 5A"DoubleDOS",INT 71,INT 7A"GO32"
- --------H-0A---------------------------------
- INT 0A C - IRQ2 - Tandy 1000-series HARD DISK
- Notes: this interrupt may be masked by setting bit 2 on I/O port 21h
- the Tandy 1000, 1000A, and 1000HD use IRQ2 for the hard disk; the
- 1000EX, HX, RLX, RLX-HD, RLX-B, RLX-HD-B use IRQ5 instead; the
- 1000RL, RL-HD, SL, SL/2, TL, TL/2, and TL/3 are jumper-selectable
- for either IRQ2 or IRQ5 (default IRQ5); the 1000SX and TX are
- DIP-switch selectable for IRQ2 or IRQ5 (default IRQ2); the RSX and
- RSX-HD use IRQ14. Tandy systems which use IRQ2 for the hard disk
- interrupt use IRQ5 for vertical retrace.
- SeeAlso: INT 52"DESQview",INT 5A"DoubleDOS",INT 71
- --------H-0A---------------------------------
- INT 0A - IRQ2 - ROLAND MPU MIDI INTERFACE
- Note: newer Roland cards and MIDI interfaces by other manufacturers use
- a jumper-selectable IRQ, but software and hardware generally defaults
- to IRQ2
- SeeAlso: INT 52"DESQview",INT 5A"DoubleDOS",INT 71,INT 7A"GO32"
- --------C-0A---------------------------------
- INT 0A CP - CPU-generated (80286+) - INVALID TASK STATE SEGMENT
- Desc: automatically called during a task switch if the new TSS specified by
- the task gate is invalid for any of the following reasons:
- TSS limit is less than 43 (80286) or 103 (80386/80486)
- LDT selector invalid or segment not present
- null SS selector, or SS selector outside LDT/GDT limit
- stack segment is read-only
- stack segment DPL differs from new CPL, or RPL <> CPL
- CS selector is outside LDT/GDT limit or not code
- non-conforming code segment's DPL differs from CPL
- conforming code segment's DPL > CPL
- DS/ES selectors outside LDT/GDT limit or not readable segments
- Note: the handler must use a task gate in order to have a valid TSS under
- which to execute; it must also reset the busy bit in the new TSS
- SeeAlso: INT 0B"CPU"
- --------H-0B---------------------------------
- INT 0B C - IRQ3 - SERIAL COMMUNICATIONS (COM2)
- Desc: automatically asserted by the UART when COM2 needs attention, if the
- UART has been programmed to generate interrupts
- Notes: the TOPS and PCnet adapters use this interrupt request line as an
- alternate
- on PS/2s, COM2 through COM8 share this interrupt; on many PC's, COM4
- shares this interrupt
- may be masked by setting bit 3 on I/O port 21h
- SeeAlso: INT 0C"COM1",INT 53"DESQview",INT 5B"DoubleDOS",INT 7B"GO32"
- --------C-0B---------------------------------
- INT 0B CP - CPU-generated (80286+) - SEGMENT NOT PRESENT
- Desc: generated when loading a segment register if the segment descriptor
- indicates that the segment is not currently in memory, unless the
- segment is an LDT (see INT 0A"CPU") or stack segment (see
- INT 0C"CPU") needed by a task switch
- Note: may be used to implement virtual memory by loading in segments as they
- are accessed, clearing the "not present" bit after loading
- SeeAlso: INT 0A"CPU",INT 0E"CPU"
- --------h-0B---------------------------------
- INT 0B - HP 95LX - LOW-LEVEL KEYBOARD HANDLER
- Desc: this is the lowest-level keyboard handler on an HP 95LX palmtop
- Note: debounces key, places the keycode in I/O register 60h, and calls INT 09
- SeeAlso: INT 09,INT 0D"HP 95LX",INT 15/AX=4DD4h
- --------H-0C---------------------------------
- INT 0C C - IRQ4 - SERIAL COMMUNICATIONS (COM1)
- Desc: automatically asserted by the UART when COM1 needs attention, if the
- UART has been programmed to generate interrupts
- BUG: this vector is modified but not restored by Direct Access v4.0, and
- may be left dangling by other programs written with the same version
- of compiled BASIC
- Notes: on many PC's, COM3 shares this interrupt
- may be masked by setting bit 4 on I/O port 21h
- SeeAlso: INT 0B"COM2",INT 54"DESQview",INT 5C"DoubleDOS",INT 7C"GO32"
- --------C-0C---------------------------------
- INT 0C C - CPU-generated (80286+) - STACK FAULT
- Desc: this interrupt is generated in protected mode on a stack overflow or
- underflow, or if an inter-level transition or task switch references
- a stack segment marked "not present"; it is generated in real mode
- on accessing a word operand at SS:FFFFh
- Note: the 80286 will shut down in real mode if SP=1 before a push. On the
- PC AT and compatibles, external circuitry generates a reset on
- shutdown.
- SeeAlso: INT 0B"CPU",INT 0D"CPU"
- --------I-0C---------------------------------
- INT 0C - IBM SYSTEM 36/38 WORKSTATION EMULATION - API POINTER
- Desc: the IBM System 36/38 emulator may be invoked through a private API,
- whose entry point address (see #0006) is offset 100h in the segment
- pointed at by this vector
-
- (Table 0006)
- Call the System 36/38 emulator API entry point with:
- AH = function
- 03h update screen
- 05h select next session
- AL = session number (00h-03h)
- Return: AL = session type code
- 00h not active
- 01h display session
- 02h printer session
- FEh invalid session number
- DS = requested session's data segment (0 if not active)
- (see #0007)
- Return: ???
-
- Format of System 36/38 emulator's data area:
- Offset Size Description (Table 0007)
- 13Eh BYTE bit flags for status line indicators turned on since this byte
- last zerod
- 13Fh BYTE bit flags for status line indicators turned off since this
- byte last set to FFh
- 140h WORD offset of EBCDIC to ASCII translation
- 146h WORD offset of EBCDIC screen buffer
- 148h WORD offset of EC (engineering change) level signature
- 150h BYTE "KEYI"
- 151h BYTE 5250 key scan code to be sent to remote
- 15Bh BYTE "SYSAV"
- 15Dh BYTE 5250 cursor column
- 15Eh BYTE 5250 cursor row
- 167h BYTE "DVCTAD"
- 178h BYTE "FLAGS"
- 184h BYTE "SESSNOAD"
- 193h BYTE "STNAD"
- 198h BYTE "NSDS"
- Note: offsets are from the interrupt handler's segment
- --------H-0D---------------------------------
- INT 0D C - IRQ5 - FIXED DISK (PC,XT), LPT2 (AT), reserved (PS/2)
- Notes: under DESQview, only the INT 15h vector and BASIC segment address (the
- word at 0000h:0510h) may be assumed to be valid for the handler's
- process
- the Tandy 1000, 1000A, and 1000HD use IRQ2 for the hard disk; the
- 1000EX, HX, RLX, RLX-HD, RLX-B, RLX-HD-B use IRQ5 instead; the
- 1000RL, RL-HD, SL, SL/2, TL, TL/2, and TL/3 are jumper-selectable
- for either IRQ2 or IRQ5 (default IRQ5); the 1000SX and TX are
- DIP-switch selectable for IRQ2 or IRQ5 (default IRQ2); the RSX and
- RSX-HD use IRQ14. Tandy systems which use IRQ2 for the hard disk
- interrupt use IRQ5 for vertical retrace.
- may be masked by setting bit 5 on I/O port 21h
- SeeAlso: INT 0E"IRQ6",INT 0F"IRQ7",INT 55"DESQview",INT 5D"DoubleDOS"
- SeeAlso: INT 7D"GO32"
- --------H-0D---------------------------------
- INT 0D C - IRQ5 - Tandy 1000 60 Hz RAM REFRESH
- Desc: used to ensure that the dynamic RAM retains its contents in earlier
- 1000-series models; later models use normal DMA for RAM refresh
- (some early models have no DMA unless it is added via an expansion
- card)
- SeeAlso: INT 55
- --------h-0D---------------------------------
- INT 0D - HP 95LX - INFRARED INTERRUPT
- Desc: this interrupt is used to perform communications over the infrared
- data link
- SeeAlso: INT 0B"HP 95LX",INT 0E"HP 95LX",INT 15/AX=4DD4h
- --------C-0D---------------------------------
- INT 0D C - CPU-generated (80286+) - GENERAL PROTECTION VIOLATION
- Desc: the CPU generates this interrupt when it detects a protection violation
- which does not fit under any other category having a separate
- interrupt
- Notes: called in real mode when
- an instruction accesses a memory operand extending beyond offset
- FFFFh (i.e. WORD at FFFFh or DWORD at FFFDh or higher) in segment
- CS, DS, ES, FG, or GS
- a PUSH MEM or POP MEM instruction contains an invalid bit encoding
- in the second byte
- an instruction exceeds the maximum length allowed (10 bytes for
- 80286, 15 bytes for 80386/80486)
- an instruction wraps from offset FFFFh to offset 0000h
- called in protected mode on protection violations not covered by INT 06
- through INT 0C, including
- segment limit violations
- write to read-only segments
- accesses using null DS or ES selectors
- accesses to segments with privilege greater than CPL
- wrong descriptor type
- called on 80486 protected-mode floating-point protection fault
- SeeAlso: INT 09"80486",INT 0C"STACK"
- --------H-0E---------------------------------
- INT 0E C - IRQ6 - DISKETTE CONTROLLER
- Desc: this interrupt is generated by the floppy disk controller on
- completion of an operation
- Notes: default handler is at F000h:EF57h in IBM PC and 100%-compatible BIOSes
- may be masked by setting bit 6 on I/O port 21h
- SeeAlso: INT 0D"IRQ5",INT 56"DESQview",INT 5E"DoubleDOS",INT 7E"GO32"
- --------C-0E---------------------------------
- INT 0E C - CPU-generated (80386+ native mode) - PAGE FAULT
- Desc: this interrupt is generated in protected and virtual-86 modes on
- attempting to access a 4K memory page whose page table entry has
- the "present" bit cleared
- Notes: used to implement virtual memory--when the page fault occurs, the
- operating system can load the appropriate page from disk
- a protected-mode program written in the Flat memory model will often
- generate this interrupt (typically reported as an Exception #14 or
- Exception 0E with a register dump) when dereferencing an
- uninitialized or corrupted pointer
- SeeAlso: INT 0B"CPU"
- --------h-0E---------------------------------
- INT 0E C - HP 95LX - EXTERNAL CARD INTERRUPT
- SeeAlso: INT 0D"HP 95LX",INT 0F"HP 95LX",INT 15/AX=4DD4h
- --------H-0F---------------------------------
- INT 0F C - IRQ7 - PARALLEL PRINTER
- Desc: this interrupt is generated by the LPT1 printer adapter when the
- printer becomes ready
- Notes: most printer adapters do not reliably generate this interrupt
- the 8259 interrupt controller generates an interrupt corresponding to
- IRQ7 when an error condition occurs
- SeeAlso: INT 0D"IRQ5",INT 57"DESQview",INT 5F"DoubleDOS",INT 7F"GO32"
- SeeAlso: MEM 0040h:006Bh
- --------h-0F---------------------------------
- INT 0F C - HP 95LX - REAL-TIME CLOCK
- SeeAlso: INT 0E"HP 95LX",INT 15/AX=4DD4h,INT 70"IRQ8"
- --------C-10---------------------------------
- INT 10 C - CPU-generated (80286+) - COPROCESSOR ERROR
- Desc: this interrupt is generated by the CPU when the -ERROR pin is asserted
- by the coprocessor
- Note: AT's and clones usually wire the coprocessor to use IRQ13, but not all
- get it right
- SeeAlso: INT 09"hardware",INT 75
- --------V-1000-------------------------------
- INT 10 - VIDEO - SET VIDEO MODE
- AH = 00h
- AL = desired video mode (see #0009)
- Return: AL = video mode flag (Phoenix, AMI BIOS)
- 20h mode > 7
- 30h modes 0-5 and 7
- 3Fh mode 6
- AL = CRT controller mode byte (Phoenix 386 BIOS v1.10)
- Desc: specify the display mode for the currently active display adapter
- Notes: IBM standard modes do not clear the screen if the high bit of AL is set
- (EGA or higher only)
- the Tseng ET4000 chipset is used by the Orchid Prodesigner II, Diamond
- SpeedSTAR VGA, Groundhog Graphics Shadow VGA, Boca Super X VGA,
- Everex EV-673, etc.
- the installation check for Ahead adapters is the signature "AHEAD" at
- C000h:0025h
- the installation check for Paradise adapters is the signature "VGA=" at
- C000h:007Dh
- the installation check for Oak Tech OTI-037/057/067/077 chipsets is the
- signature "OAK VGA" at C000h:0008h
- the installation check for ATI adapters is the signature "761295520" at
- C000h:0031h; the byte at C000h:0043h indicates the chipset revision:
- 31h for 18800
- 32h for 18800-1
- 33h for 18800-2
- 34h for 18800-4
- 35h for 18800-5
- 62h for 68800AX (Mach32) (see also #0656)
- the two bytes at C000h:0040h indicate the adapter type
- "22" EGA Wonder
- "31" VGA Wonder
- "32" EGA Wonder800+
- the byte at C000h:0042h contains feature flags
- bit 1: mouse port present
- bit 4: programmable video clock
- the byte at C000h:0044h contains additional feature flags if chipset
- byte > 30h (see #0008)
- the installation check for Genoa video adapters is the signature
- 77h XXh 99h 66h at C000h:NNNNh, where NNNNh is stored at C000h:0037h
- and XXh is
- 00h for Genoa 6200/6300
- 11h for Genoa 6400/6600
- 22h for Genoa 6100
- 33h for Genoa 5100/5200
- 55h for Genoa 5300/5400
- for SuperEGA BIOS v2.41+, C000h:0057h contains the product level
- for SuperEGA BIOS v3.0+, C000h:0070h contains the signature
- "EXTMODE", indicating support for extended modes
- SeeAlso: AX=0070h,AX=007Eh,AX=10E0h,AX=10F0h,AH=40h,AX=6F05h,AH=FFh"GO32"
- SeeAlso: INT 33/AX=0028h,INT 5F/AH=00h,INT 62/AX=0001h,MEM 0040h:0049h
- Index: installation check;Tseng ET4000|installation check;Ahead video cards
- Index: installation check;Oak Technologies|installation check;ATI video cards
- Index: installation check;Paradise video|installation check;Genoa video cards
-
- Bitfields for ATI additional feature flags:
- Bit(s) Description (Table 0008)
- 0 70 Hz non-interlaced display
- 1 Korean (double-byte) characters
- 2 45 MHz memory clock rather than 40 MHz
- 3 zero wait states
- 4 paged ROMs
- 6 no 8514/A monitor support
- 7 HiColor DAC
-
- (Table 0009)
- Values for video mode:
- text/ text pixel pixel colors disply scrn system
- grph resol box resolution pages addr
- 00h = T 40x25 8x8 320x200 16gray 8 B800 CGA,PCjr,Tandy
- = T 40x25 8x14 320x350 16gray 8 B800 EGA
- = T 40x25 8x16 320x400 16 8 B800 MCGA
- = T 40x25 9x16 360x400 16 8 B800 VGA
- 01h = T 40x25 8x8 320x200 16 8 B800 CGA,PCjr,Tandy
- = T 40x25 8x14 320x350 16 8 B800 EGA
- = T 40x25 8x16 320x400 16 8 B800 MCGA
- = T 40x25 9x16 360x400 16 8 B800 VGA
- 02h = T 80x25 8x8 640x200 16gray 4 B800 CGA,PCjr,Tandy
- = T 80x25 8x14 640x350 16gray 8 B800 EGA
- = T 80x25 8x16 640x400 16 8 B800 MCGA
- = T 80x25 9x16 720x400 16 8 B800 VGA
- 03h = T 80x25 8x8 640x200 16 4 B800 CGA,PCjr,Tandy
- = T 80x25 8x14 640x350 16/64 8 B800 EGA
- = T 80x25 8x16 640x400 16 8 B800 MCGA
- = T 80x25 9x16 720x400 16 8 B800 VGA
- = T 80x43 8x8 640x350 16 4 B800 EGA,VGA [17]
- = T 80x50 8x8 640x400 16 4 B800 VGA [17]
- 04h = G 40x25 8x8 320x200 4 . B800 CGA,PCjr,EGA,MCGA,VGA
- 05h = G 40x25 8x8 320x200 4gray . B800 CGA,PCjr,EGA
- = G 40x25 8x8 320x200 4 . B800 MCGA,VGA
- 06h = G 80x25 8x8 640x200 2 . B800 CGA,PCjr,EGA,MCGA,VGA
- = G 80x25 . . mono . B000 HERCULES.COM on HGC [14]
- 07h = T 80x25 9x14 720x350 mono var B000 MDA,Hercules,EGA
- = T 80x25 9x16 720x400 mono . B000 VGA
- 08h = T 132x25 8x8 1056x200 16 . B800 ATI EGA/VGA Wonder [2]
- = T 132x25 8x8 1056x200 mono . B000 ATI EGA/VGA Wonder [2]
- = G 20x25 8x8 160x200 16 . . PCjr, Tandy 1000
- = G 80x25 8x16 640x400 color . . Tandy 2000
- = G 90x43 8x8 720x348 mono . B000 Hercules + MSHERC.COM
- = G 90x45 8x8 720x360 mono . B000 Hercules + HERKULES [11]
- = G 90x29 8x12 720x348 mono . . Hercules + HERCBIOS [15]
- 09h = G 40x25 8x8 320x200 16 . . PCjr, Tandy 1000
- = G 80x25 8x16 640x400 mono . . Tandy 2000
- = G 90x43 8x8 720x348 mono . . Hercules + HERCBIOS [15]
- 0Ah = G 80x25 8x8 640x200 4 . . PCjr, Tandy 1000
- 0Bh = reserved (EGA BIOS internal use)
- = G 80x25 8x8 640x200 16 . . Tandy 1000 SL/TL [13]
- 0Ch = reserved (EGA BIOS internal use)
- 0Dh = G 40x25 8x8 320x200 16 8 A000 EGA,VGA
- 0Eh = G 80x25 8x8 640x200 16 4 A000 EGA,VGA
- 0Fh = G 80x25 8x14 640x350 mono 2 A000 EGA,VGA
- 10h = G 80x25 8x14 640x350 4 2 A000 64k EGA
- = G . . 640x350 16 . A000 256k EGA,VGA
- 11h = G 80x30 8x16 640x480 mono . A000 VGA,MCGA,ATI EGA,ATI VIP
- 12h = G 80x30 8x16 640x480 16/256K . A000 VGA,ATI VIP
- = G 80x30 8x16 640x480 16/64 . A000 ATI EGA Wonder
- = G . . 640x480 16 . . UltraVision+256K EGA
- 13h = G 40x25 8x8 320x200 256/256K . A000 VGA,MCGA,ATI VIP
- 14h = T 132x25 Nx16 . 16 . B800 XGA, IBM Enhanced VGA [3]
- = T 132x25 8x16 1056x400 16/256K . . Cirrus CL-GD5420/5422/5426
- = G 80x25 8x8 640x200 . . . Lava Chrome II EGA
- = G . . 640x400 16 . . Tecmar VGA/AD
- 15h = G 80x25 8x14 640x350 . . . Lava Chrome II EGA
- 16h = G 80x25 8x14 640x350 . . . Lava Chrome II EGA
- = G . . 800x600 16 . . Tecmar VGA/AD
- 17h = T 132x25 . . . . . Tecmar VGA/AD
- = T 80x43 8x8 640x348 16 4 B800 Tseng ET4000 BIOS [10]
- = G 80x34 8x14 640x480 . . . Lava Chrome II EGA
- 18h = T 80x30 9x16 720x480 16 1 A000 Realtek RTVGA [12]
- = T 132x25 . . mono . B000 Cirrus 5320 chipset
- = T 132x44 8x8 1056x352 mono . B000 Tseng Labs EVA
- = T 132x44 9x8 1188x352 4gray 2 B000 Tseng ET3000 chipset
- = T 132x44 8x8 1056x352 16/256 2 B000 Tseng ET4000 chipset
- = G 80x34 8x14 640x480 . . . Lava Chrome II EGA
- = G 1024x768 16 . . Tecmar VGA/AD
- 19h = T 80x43 9x11 720x473 16 1 A000 Realtek RTVGA [12]
- = T 132x25 8x14 1056x350 mono . B000 Tseng Labs EVA
- = T 132x25 9x14 1188x350 4gray 4 B000 Tseng ET3000 chipset
- = T 132x25 8x14 1056x350 16/256 4 B000 Tseng ET4000 chipset
- = T 132x34 . . mono . B000 Cirrus 5320 chipset
- 1Ah = T 80x60 9x8 720x480 16 1 A000 Realtek RTVGA [12]
- = T 132x28 8x13 1056x364 mono . B000 Tseng Labs EVA
- = T 132x28 9x13 1188x364 4gray 4 B000 Tseng ET3000 chipset
- = T 132x28 8x13 1056x364 16/256 4 B000 Tseng ET4000 chipset
- = T 132x44 . . mono . B000 Cirrus 5320 chipset
- = G . . 640x350 256 . . Tecmar VGA/AD
- 1Bh = T 132x25 9x14 1188x350 16 1 A000 Realtek RTVGA [12]
- = G . . 640x400 256 . . Tecmar VGA/AD
- 1Ch = T 132x25 . . . . . Cirrus 5320 chipset
- = T 132x30 9x16 1188x480 16 1 A000 Realtek RTVGA [12]
- = G . . 640x480 256 . . Tecmar VGA/AD
- 1Dh = T 132x43 . . . . . Cirrus 5320 chipset
- = T 132x43 9x11 1188x473 16 1 A000 Realtek RTVGA [12]
- = G . . 800x600 256 . . Tecmar VGA/AD
- 1Eh = T 132x44 . . . . . Cirrus 5320 chipset
- = T 132x60 9x8 1188x480 16 1 A000 Realtek RTVGA [12]
- 1Fh = G 100x75 8x8 800x600 16 1 A000 Realtek RTVGA
- 20h = T 132x25 . . 16 . . Avance Logic AL2101
- = G 40x16 . 240x128 mono . B000 HP 95LX/100LX/200LX
- = G 120x45 8x16 960x720 16 1 A000 Realtek RTVGA
- 21h = T 80x25 . . mono . B000 HP 200LX
- = T 132x30 . . 16 . . Avance Logic AL2101
- = T 132x44 9x9 1188x396 16/256K . B800 WD90C
- = T 132x44 9x9 1188x396 16 . B800 Diamond Speedstar 24X
- = T 132x60 . . 16 2 B800 Tseng ET4000 chipset [10]
- = G 80x43 8x8 720x348 mono . B000 DESQview 2.x+Hercules [4]
- = G 128x48 8x16 1024x768 16 1 A000 Realtek RTVGA [12]
- 22h = T 132x43 . . . . . Allstar Peacock (VGA)
- = T 132x43 . . 16 . . Avance Logic AL2101
- = T 132x44 8x8 1056x352 . . B800 Tseng Labs EVA
- = T 132x44 9x8 1188x352 16/256K 2 B800 Tseng ET3000 chipset
- = T 132x44 8x8 1056x352 16/256K 2 B800 Tseng ET4000 chipset
- = T 132x44 8x8 1056x352 . . . Ahead Systems EGA2001
- = T 132x44 8x8 1056x352 16 2 B800 Ahead B
- = T 132x44 8x9 1056x398 16 . . STB Lightspeed ET4000/W32P
- = T 132x44 . . 16 . . Orchid Prodesigner VGA
- = G 80x43 8x8 720x348 mono . B800 DESQview 2.x+Hercules [4]
- = G 96x64 8x16 768x1024 16 1 A000 Realtek RTVGA
- 23h = T 132x25 6x14 792x350 . . B800 Tseng Labs EVA
- = T 132x25 9x14 1188x350 16/256K 4 B800 Tseng ET3000 chipset
- = T 132x25 8x14 1056x350 16/256 4 B800 Tseng ET4000 chipset
- = T 132x25 8x14 1056x350 . . . Ahead Systems EGA2001
- = T 132x25 8x14 1056x350 16 4 B800 Ahead B
- = T 132x25 8x8 1056x200 16 . B800 ATI EGA Wonder,ATI VIP
- = T 132x25 . . . . . Cirrus 5320 chipset
- = T 132x28 . . . . . Allstar Peacock (VGA)
- = T 132x28 . . 16 . . Orchid Prodesigner VGA
- = T 132x60 . . 16 . . Avance Logic AL2101
- = G 128x48 8x16 1024x768 4 1 A000 Realtek RTVGA
- 24h = T 80x30 . . 16 . . Avance Logic AL2101
- = T 132x25 . . . . . Allstar Peacock (VGA)
- = T 132x25 . . 16 . . Orchid Prodesigner VGA
- = T 132x28 6x13 792x364 . . B800 Tseng Labs EVA
- = T 132x28 9x13 1188x364 16/256K 4 B800 Tseng ET3000 chipset
- = T 132x28 8x12 1056x336 16 1 B800 Ahead B
- = T 132x28 8x13 1056x364 16/256K 4 B800 Tseng ET4000 chipset
- = T 132x28 8x14 1056x392 16 . . STB Lightspeed ET4000/W32P
- = T 132x28 . . . . . Cirrus 5320 chipset
- = G 64x32 8x16 512x512 256 1 A000 Realtek RTVGA
- 25h = T 80x43 . . 16 . . Avance Logic AL2101
- = G 80x60 8x8 640x480 . . A000 Tseng Labs EVA
- = G 80x60 8x8 640x480 16/256K 1 A000 Tseng ET3000/4000 chipset
- = G . . 640x480 16 . . VEGA VGA
- = G 80x60 8x8 640x480 16 . A000 Orchid Prodesigner VGA
- = G 80x60 8x8 640x480 16 1 A000 Ahead B (same as 26h)
- = G . . 640x480 16 . . NEC GB-1
- = G . . 640x480 16 . . Cirrus 5320 chipset
- = G . . 640x400 256 . . Realtek RTVGA
- 26h = T 80x60 8x8 640x480 . . . Tseng Labs EVA
- = T 80x60 8x8 640x480 16/256K 3 B800 Tseng ET3000/4000 chipset
- = T 80x60 . . . . . Allstar Peacock (VGA)
- = T 80x60 . . 16 . . Orchid ProDesigner VGA
- = T 80x60 . . 16 . . Avance Logic AL2101
- = G 80x60 8x8 640x480 . . . Ahead Systems EGA2001
- = G 80x60 8x8 640x480 16 1 A000 Ahead B (same as 25h)
- = G . . 640x480 256 . . Realtek RTVGA
- 27h = T 132x25 8x8 1056x200 mono . B000 ATI EGA Wonder,ATI VIP
- = G . . 720x512 16 . . VEGA VGA
- = G . . 720x512 16 . . Genoa
- = G 100x75 8x8 800x600 256 1 A000 Realtek RTVGA [12]
- = G . . 960x720 16 . . Avance Logic AL2101
- 28h = T ???x??? . . . . . VEGA VGA
- = G . . 512x512 256 . . Avance Logic AL2101
- = G . . 1024x768 256 . . Realtek RTVGA (1meg)
- 29h = G . . 640x400 256 . . Avance Logic AL2101
- = G . . 800x600 16 . . VEGA VGA
- = G 100x37 8x16 800x600 16 . A000 Orchid
- = G . . 800x600 16 . A000 STB,Genoa,Sigma
- = G . . 800x600 16 . . Allstar Peacock (VGA)
- = G 100x37 8x16 800x600 16/256K 1 A000 Tseng ET3000/4000 chipset
- = G . . 800x600 ??? . . EIZO MDB10
- = G . . 800x600 16 . . Cirrus 5320 chipset
- = G NA . 800x600 16 . . Compaq QVision 1024/1280
- = G . . 1024x1024 256 . . Realtek RTVGA BIOS v3.C10
- 2Ah = T 100x40 . . . . . Allstar Peacock (VGA)
- = T 100x40 8x16 800x640 16 . . Orchid Prodesigner VGA
- = T 100x40 8x15 800x600 16/256K 4 B800 Tseng ET3000/4000 chipset
- = T 100x40 8x15 800x600 16 . . STB Lightspeed ET4000/W32P
- = G . . 640x480 256 . . Avance Logic AL2101
- = G . . 1280x1024 16 . . Realtek RTVGA
- 2Bh = G . . 800x600 16 . . Avance Logic AL2101
- 2Ch = G . . 800x600 256 . . Avance Logic AL2101
- 2Dh = G . . 640x350 256 . . VEGA VGA
- = G . . 640x350 256/256K . A000 Orchid, Genoa, STB
- = G 80x25 8x14 640x350 256/256K 1 A000 Tseng ET3000/4000 chipset
- = G . . 640x350 256 . . Cirrus 5320 chipset
- = G 80x25 8x14 640x350 256 . . STB Lightspeed ET4000/W32P
- = G . . 768x1024 16 . . Avance Logic AL2101
- 2Eh = G . . 640x480 256 . . VEGA VGA
- = G 80x30 8x16 640x480 256/256K . A000 Orchid
- = G . . 640x480 256/256K . A000 STB,Genoa,Sigma
- = G 80x30 8x16 640x480 256/256K 1 A000 Tseng ET3000/4000 chipset
- = G . . 640x480 256/256K . . Compaq QVision 1024/1280
- = G . . 768x1024 256 . . Avance Logic AL2101
- 2Fh = T 160x50 8x8 1280x400 16 4 B800 Ahead B (Wizard/3270)
- = G . . 720x512 256 . . VEGA VGA
- = G . . 720x512 256 . . Genoa
- = G 80x25 8x16 640x400 256/256K 1 A000 Tseng ET4000 chipset
- = G . . 1024x768 4 . . Avance Logic AL2101
- 30h = G . . 800x600 256 . . VEGA VGA
- = G 100x37 8x16 800x600 256/256K . A000 Orchid
- = G . . 800x600 256/256K . A000 STB,Genoa,Sigma
- = G . . 720x350 2 . . 3270 PC
- = G . . 800x600 256 . . Cardinal
- = G . . . . . B800 AT&T 6300
- = G 100x37 8x16 800x600 256/256K 1 A000 Tseng ET3000/4000 chipset
- = G . . 1024x768 16 . . Avance Logic AL2101
- 31h = G . . 1024x768 256 . . Avance Logic AL2101
- 32h = T 80x34 8x10 . 16 4 B800 Ahead B (Wizard/3270)
- = G . . 640x480 256 . . Compaq QVision 1024/1280
- 33h = T 132x44 8x8 . 16 . B800 ATI EGA Wonder,ATI VIP
- = T 80x34 8x8 . 16 4 B800 Ahead B (Wizard/3270)
- 34h = T 80x66 8x8 . 16 4 B800 Ahead B (Wizard/3270)
- = G . . 800x600 256 . . Compaq QVision 1024/1280
- 36h = G . . 960x720 16 . . VEGA VGA, STB
- = G . . 960x720 16 . A000 Tseng ET3000 only
- = G . . 1280x1024 16 . . Avance Logic AL2101
- 37h = T 132x44 8x8 . mono . B800 ATI EGA Wonder,ATI VIP
- = G . . 1024x768 16 . . VEGA VGA
- = G 128x48 8x16 1024x768 16 . A000 Orchid
- = G . . 1024x768 16 . A000 STB,Genoa,Sigma
- = G . . 1024x768 16 . . Definicon
- = G 128x48 8x16 1024x768 16 1 A000 Tseng ET3000/4000 chipset
- = G . . 1024x768 16 . . Compaq QVision 1024/1280
- = G . . 1280x1024 256 . . Avance Logic AL2101
- 38h = G . . 1024x768 256 . . STB VGA/EM-16 Plus (1MB)
- = G 128x48 8x16 1024x768 256/256K 1 A000 Tseng ET4000 chipset
- = G . . 1024x768 256 . . Orchid ProDesigner II
- = G . . 1024x768 256 . . Compaq QVision 1024/1280
- 39h = G . . 1280x1024 16 . . Compaq QVision 1280
- 3Ah = G . . 1280x1024 256 . . Compaq QVision 1280
- 3Bh = G . . 512x480 256 . . Compaq QVision 1024/1280
- 3Ch = G . . 640x400 64K . . Compaq QVision 1024/1280
- 3Dh = G . . 1280x1024 16 . . Definicon
- = G 128x64 8x16 1280x1024 16 1 A000 Tseng ET4000 v3.00 [1,7]
- 3Eh = G . . 1280x961 16 . . Definicon
- = G . . 640x480 64K . . Compaq QVision 1024/1280
- 3Fh = G . . 1280x1024 256 . . Hercules ??? (ET4000W32)
- = G . . 800x600 64K . . Compaq QVision 1024/1280
- 40h = T 80x43 . . . . . VEGA VGA, Tecmar VGA/AD
- = T 80x43 . . . . . Video7 V-RAM VGA
- = T 80x43 . . . . . Tatung VGA
- = T 100x30 . . 16 . . MORSE VGA
- = T 100x30 . . . . . Cirrus 510/520 chipset
- = T 80x25 . 720x350 mono . . Genoa SuperEGA BIOS 3.0+
- = G . . 320x200 64K . . Avance Logic AL2101
- = G 80x25 8x16 640x400 2 1 B800 AT&T 6300, AT&T VDC600
- = G 80x25 8x16 640x400 2 1 B800 Olivetti Quaderno
- = G 80x25 8x16 640x400 2 1 B800 Compaq Portable
- = G . . 1024x768 64K . . Compaq QVision 1280
- 41h = T 132x25 . . . . . VEGA VGA
- = T 132x25 . . . . . Tatung VGA
- = T 132x25 . . . . . Video7 V-RAM VGA
- = T 100x50 . . 16 . . MORSE VGA
- = T 100x50 . . . . . Cirrus 510/520 chipset
- = T 80x34 9x14 720x476 16/256K . B800 WD90C
- = T 80x34 9x14 . 16 . B800 Diamond Speedstar 24X
- = G . . 512x512 64K . . Avance Logic AL2101
- = G . . 640x200 16 1 . AT&T 6300
- = G 80x25 . 720x348 mono . B000 Genoa SuperEGA BIOS 3.0+
- 42h = T 132x43 . . . . . VEGA VGA
- = T 132x43 . . . . . Tatung VGA
- = T 132x43 . . . . . Video7 V-RAM VGA
- = T 80x34 9x10 . 4 4 B800 Ahead B (Wizard/3270)
- = T 100x60 . . 16 . . MORSE VGA
- = T 100x60 . . . . . Cirrus 510/520 chipset
- = G 80x25 8x16 640x400 16 . . AT&T 6300, AT&T VDC600
- = G . . 640x400 64K . . Avance Logic AL2101
- = G 80x25 . 720x348 mono . B800 Genoa SuperEGA BIOS 3.0+
- 43h = T 80x60 . . . . . VEGA VGA
- = T 80x60 . . . . . Tatung VGA
- = T 80x60 . . . . . Video7 V-RAM VGA
- = T 80x45 9x8 . 4 4 B800 Ahead B (Wizard/3270)
- = T 100x75 . . 16 . . MORSE VGA
- = T 80x29 . 720x348 mono . . Genoa SuperEGA BIOS 3.0+
- = G . . 640x200 of 640x400 viewport AT&T 6300 (unsupported)
- = G . . 640x480 64K . . Avance Logic AL2101
- 44h = disable VDC and DEB output . AT&T 6300
- = T 100x60 . . . . . VEGA VGA
- = T 100x60 . . . . . Tatung VGA
- = T 100x60 . . . . . Video7 V-RAM VGA
- = T 80x32 . 720x352 mono . . Genoa SuperEGA BIOS 3.0+
- = G . . 800x600 64K . . Avance Logic AL2101
- 45h = T 132x28 . . . . . Tatung VGA
- = T 132x28 . . . . . Video7 V-RAM VGA
- = T 80x44 . 720x352 mono . . Genoa SuperEGA BIOS 3.0+
- 46h = T 132x25 8x14 . mono . . Genoa 6400
- = T 132x25 9x14 . mono . . Genoa SuperEGA BIOS 3.0+
- = G 100x40 8x15 800x600 2 . . AT&T VDC600
- 47h = T 132x29 8x12 . mono . . Genoa 6400
- = T 132x29 9x12 . mono . . Genoa SuperEGA BIOS 3.0+
- = T 132x28 9x16 1188x448 16/256K . B800 WD90C
- = T 132x28 9x16 . 16 . B800 Diamond Speedstar 24X
- = G 100x37 8x16 800x600 16 . . AT&T VDC600
- 48h = T 132x32 8x12 . mono . . Genoa 6400
- = T 132x32 9x11 . mono . . Genoa SuperEGA BIOS 3.0+
- = G 80x50 8x8 640x400 2 . B800 AT&T 6300, AT&T VDC600
- = G 80x50 8x8 640x400 2 . B800 Olivetti Quaderno
- 49h = T 132x44 8x8 . mono . . Genoa 6400
- = T 132x44 9x8 . mono . . Genoa SuperEGA BIOS 3.0+
- = G 80x30 8x16 640x480 . . . Lava Chrome II EGA
- = G 80x30 8x16 640x480 . . A000 Diamond Stealth64 Video 2xx1
- 4Bh = G 100x37 8x16 800x600 . . A000 Diamond Stealth64 Video 2xx1
- 4Dh = T 120x25 . . . . . VEGA VGA
- = G . . 512x480 16M . . Compaq QVision 1024/1280
- = G 128x48 8x16 1024x768 . . A000 Diamond Stealth64 Video 2xx1
- 4Eh = T 120x43 . . . . . VEGA VGA
- = T 80x60 8x8 . 16/256K . B800 Oak OTI-067/OTI-077 [8]
- = G . . 640x400 16M . . Compaq QVision 1024/1280
- = G 144x54 8x16 1152x864 . . A000 Diamond Stealth64 Video 2xx1
- 4Fh = T 132x25 . . . . . VEGA VGA
- = T 132x60 . . . . . some Oak Tech VGA [8]
- = G . . 640x480 16M . . Compaq QVision 1280
- 50h = T 80x30 8x16 . 16/256K . B800 Trident TVGA 8800/8900
- = T 80x34 . . . . . Lava Chrome II EGA
- = T 80x43 . . mono . . VEGA VGA
- = T 132x25 9x14 . mono . . Ahead Systems EGA2001
- = T 132x25 9x14 . 4 4 B800 Ahead B
- = T 132x25 8x14 . 16 8 B800 OAK Technologies VGA-16
- = T 132x25 8x14 . 16/256K . B800 Oak OTI-037/067/077 [8]
- = T 132x25 8x14 1056x350 16 8 B800 UM587 chipset
- = T 132x30 . . 16 . . MORSE VGA
- = T 132x30 . . . . . Cirrus 510/520 chipset
- = G 80x30 8x16 640x480 16 . . Paradise EGA-480
- = G 80x30 8x16 640x480 16 . . NEL Electronics BIOS
- = G . . 640x480 mono??? . . Taxan 565 EGA
- = G 40x25 8x8 320x200 . . . Genoa SuperEGA BIOS 3.0+
- 51h = T 80x30 8x16 . . . . Paradise EGA-480
- = T 80x30 9x16 . . . . NEL Electronics BIOS
- = T 80x30 . . . . . Lava Chrome II EGA
- = T 80x43 8x11 . 16/256K . B800 Trident TVGA 8800/8900
- = T 132x25 . . mono . . VEGA VGA
- = T 132x28 9x12 . 4 4 B800 Ahead B
- = T 132x43 8x8 . 16 5 B800 OAK Technologies VGA-16
- = T 132x43 8x8 . 16/256K . B800 Oak OTI-037/067/077
- = T 132x43 8x8 1056x344 16 5 B800 UM587 chipset
- = T 132x50 . . 16 . . MORSE VGA
- = T 132x50 . . . . . Cirrus 510/520 chipset
- = G 80x34 8x14 640x480 16 . . ATI EGA Wonder
- = G 80x25 8x8 640x200 . . . Genoa SuperEGA BIOS 3.0+
- 52h = T 80x60 . . . . . Lava Chrome II EGA
- = T 80x60 8x8 . 16/256K . B800 Trident TVGA 8800/8900
- = T 132x43 . . mono . . VEGA VGA
- = T 132x44 9x8 . mono . . Ahead Systems EGA2001
- = T 132x44 9x8 . 4 2 B800 Ahead B
- = T 132x60 . . 16 . . MORSE VGA
- = T 132x60 . . . . . Cirrus 510/520 chipset
- = G 80x25 8x19 640x480 16 1 A000 AX VGA (Kanji&superimpose)
- = G 94x29 8x14 752x410 16 . . ATI EGA Wonder
- = G 100x75 8x8 800x600 16 1 A000 OAK Technologies VGA-16
- = G 100x75 8x8 800x600 16 . A000 Oak OTI-037 chipset [8]
- = G 100x37 8x16 800x600 16 . A000 Oak OTI-067/077 chips [8]
- = G 100x75 8x8 800x600 16 . A000 UM587 chipset
- = G 128x30 8x16 1024x480 16 . . NEL Electronics BIOS
- 53h = T 80x25 8x16 . . . . NEL Electronics BIOS
- = T 80x60 . . 16 . . MORSE VGA
- = T 80x60 . . . . . Cirrus 510/520 chipset
- = T 132x25 8x14 . 16/256K . B800 Trident TVGA 8800/8900
- = T 132x43 . . . . . Lava Chrome II EGA
- = G 80x25 8x19 640x480 16 1 A000 AX VGA (Kanji, no superimp.)
- = G . . 640x480 256 . . Oak VGA
- = G 80x30 8x16 640x480 256 . A000 Oak OTI-067/OTI-077 [8]
- = G 100x40 8x14 800x560 16 . . ATI EGA Wonder,ATI VIP
- = G . . . . . . AX PC
- 54h = T 132x25 . . . . . Lava Chrome II EGA
- = T 132x30 8x16 . 16/256K . B800 Trident TVGA 8800/8900
- = T 132x43 8x8 . . . . Paradise EGA-480
- = T 132x43 8x8 . . . . NEL Electronics BIOS
- = T 132x43 7x9 . 16/256K . B800 Paradise VGA
- = T 132x43 8x9 . 16/256K . B800 Paradise VGA on multisync
- = T 132x43 . . . . . Taxan 565 EGA
- = T 132x43 . . . . . AST VGA Plus
- = T 132x43 . . . . . Hewlett-Packard D1180A
- = T 132x43 7x9 . 16 . . AT&T VDC600
- = T 132x43 9x9 1188x387 16/256K . B800 WD90C
- = T 132x43 9x9 1188x387 16/256K . B800 Diamond Speedstar 24X
- = T 132x43 9x9 1188x387 16/256K . B800 Diamond Stealth 24
- = T 132x43 8x8 . . . B800 Diamond Stealth64 Video 2xx1
- = T 132x43 8x8 1056x350 16/256K . . Cirrus CL-GD5420/5422/5426
- = T 132x50 8x8 . 16 . A000 NCR 77C22 [9]
- = G 100x42 8x14 800x600 16 . A000 ATI EGA Wonder, VGA Wonder
- = G 100x42 8x14 800x600 16 . A000 ATI Ultra 8514A, ATI XL
- = G . . 800x600 256 . A000 Oak VGA
- = G 100x37 8x16 800x600 256 . A000 Oak OTI-067/077 chips [8]
- 55h = T 80x66 8x8 . 16/256K . A000 ATI VIP
- = T 132x25 8x14 . . . . Paradise EGA-480
- = T 132x25 8x14 . . . . NEL Electronics BIOS
- = T 132x25 7x16 . 16/256K . B800 Paradise VGA
- = T 132x25 8x16 . 16/256K . B800 Paradise VGA on multisync
- = T 132x25 . . . . . Taxan 565 EGA
- = T 132x25 . . . . . AST VGA Plus
- = T 132x25 . . . . . Hewlett-Packard D1180A
- = T 132x25 7x16 . 16 . . AT&T VDC600
- = T 132x25 8x16 . 16 . A000 NCR 77C22 [9]
- = T 132x25 9x16 1188x400 16/256K . B800 WD90C
- = T 132x25 9x16 1188x400 16/256K . B800 Diamond Speedstar 24X
- = T 132x25 9x16 1188x400 16/256K . B800 Diamond Stealth 24
- = T 132x25 8x16 . . . B800 Diamond Stealth64 Video 2xx1
- = T 132x25 8x14 1056x350 16/256K . . Cirrus CL-GD5420/5422/5426
- = T 132x43 8x11 . 16/256K . B800 Trident TVGA 8800/8900
- = G 94x29 8x14 752x410 . . . Lava Chrome II EGA
- = G 128x48 8x16 1024x768 16/256K . A000 ATI VGA Wonder v4+ [5]
- = G . . 1024x768 16/256K . . ATI VGA Wonder Plus
- = G . . 1024x768 16/256K . . ATI Ultra 8514A,ATI XL
- = G 128x48 8x16 1024x768 4 . A000 Oak OTI-067/077 chips [8]
- 56h = T 132x43 8x8 . 3??? 2 B000 NSI Smart EGA+
- = T 132x43 7x9 . 4 . B000 Paradise VGA
- = T 132x43 8x9 . 4 . B000 Paradise VGA on multisync
- = T 132x43 . . mono . . Taxan 565 EGA
- = T 132x43 7x9 . 2 . . AT&T VDC600
- = T 132x43 9x8 . . . . NEL Electronics BIOS
- = T 132x50 8x8 . 4 . A000 NCR 77C22 [9]
- = T 132x60 8x8 . 16/256K . B800 Trident TVGA 8800/8900
- = G . . 1024x768 16 . A000 Oak VGA
- = G 128x48 8x16 1024x768 16 . A000 Oak OTI-067/077 chips [8]
- 57h = T 132x25 8x14 . 3??? 4 B000 NSI Smart EGA+
- = T 132x25 7x16 . 4 . B000 Paradise VGA
- = T 132x25 8x16 . 4 . B000 Paradise VGA on multisync
- = T 132x25 9x14 . . . . NEL Electronics BIOS
- = T 132x25 . . mono . . Taxan 565 EGA
- = T 132x25 7x16 . 2 . . AT&T VDC600
- = T 132x25 9x14 . 16/256K . B800 Trident TVGA 8800/8900
- = T 132x25 8x16 . 4 . A000 NCR 77C22 [9]
- = G 96x48 8x16 768x1024 16 . A000 Oak OTI-067/077 chips [8]
- 58h = T 80x33 8x14 . 16 . B800 ATI EGA Wonder,ATI VIP
- = T 80x32 9x16 . 16 . . Genoa 6400
- = T 80x43 8x8 . . . . NEL Electronics BIOS
- = T 132x30 9x16 . 16/256K . B800 Trident TVGA 8800/8900
- = G 100x75 8x8 800x600 16/256K . A000 Paradise VGA
- = G 100x75 8x8 800x600 16 . . AT&T VDC600
- = G 100x75 8x8 800x600 16 . A000 NCR 77C22 [9]
- = G 100x75 8x8 800x600 16 . A000 Diamond Speedstar 24X
- = G 100x75 8x8 800x600 16/256K . A000 Paradise VGA, WD90C
- = G . . 800x600 16 . . AST VGA Plus, Compaq VGA
- = G . . 800x600 16 . . Dell VGA
- = G . . 800x600 16 . . Hewlett-Packard D1180A
- = G . . 800x600 ??? . . ELT VGA PLUS 16
- = G 100x37 8x16 800x600 16/256K . A000 Cirrus CL-GD5420/5422/5426
- = G 160x64 8x16 1280x1024 16 . A000 Oak OTI-077 chipset [8]
- 59h = T 80x43 9x8 . . . . NEL Electronics BIOS
- = T 80x66 8x8 . 16/256K . A000 ATI VIP
- = T 132x43 9x11 . 16/256K . B800 Trident TVGA 8800/8900
- = G 100x75 8x8 800x600 2 . A000 Paradise VGA
- = G 100x75 8x8 800x600 2 . . AT&T VDC600
- = G . . 800x600 2 . . AST VGA Plus, Compaq VGA
- = G . . 800x600 2 . . Dell VGA
- = G . . 800x600 2 . . Hewlett-Packard D1180A
- = G 100x75 8x8 800x600 2 . A000 NCR 77C22 [9]
- = G 128x48 8x16 1024x768 256 . A000 Oak OTI-077 chipset [8]
- 5Ah = T 80x60 8x8 . . . . NEL Electronics BIOS
- = T 132x60 9x8 . 16/256K . B800 Trident TVGA 8800/8900
- = G 128x48 8x16 1024x768 2 . A000 NCR 77C22 [9]
- 5Bh = T 80x30 8x16 . . . B800 ATI VGA Wonder (undoc)
- = G . . 640x350 256 . . Genoa 6400
- = G 80x25 8x16 640x400 32K . A000 Oak OTI-067/077 chips [8]
- = G . . 800x600 16 . . Maxxon, SEFCO TVGA, Imtec
- = G 100x75 8x8 800x600 16/256K . A000 Trident TVGA 8800, 8900
- = G . . 800x600 ??? . . Vobis MVGA
- = G 100x37 8x16 800x600 . . . NEL Electronics BIOS
- = G 128x48 8x16 1024x768 16 . A000 NCR 77C22 [1,9]
- 5Ch = T 100x37 8x16 . . . . NEL Electronics BIOS
- = G . . 640x400 256 . . Logix, ATI Prism Elite
- = G . . 640x400 256 . . Maxxon, SEFCO TVGA, Imtec
- = G 80x25 8x16 640x400 256/256K . A000 Zymos Poach, Hi Res 512
- = G 80x25 8x16 640x400 256/256K . A000 Trident TVGA 8800/8900
- = G 80x30 8x16 640x480 256 . . Genoa 6400
- = G 80x30 8x16 640x480 32K . A000 Oak OTI-077 chipset [8]
- = G 100x75 8x8 800x600 256 . A000 NCR 77C22 [9]
- = G 100x75 8x8 800x600 256/256K . A000 WD90C
- = G 100x75 8x8 800x600 256/256K . A000 Diamond Speedstar 24X
- = G 100x37 8x16 800x600 256/256K . A000 Cirrus CL-GD5420/5422/5426
- 5Dh = T 100x75 8x8 . . . . NEL Electronics BIOS
- = G 80x25 8x14 640x350 64K . . STB Lightspeed ET4000/W32P
- = G . . 640x480 256 . . Logix, ATI Prism Elite
- = G . . 640x480 256 . . Maxxon, SEFCO TVGA, Imtec
- = G 80x30 8x16 640x480 256/256K . A000 Zymos Poach, Hi Res 512
- = G 80x30 8x16 640x480 256/256K . A000 Trident TVGA 8800 (512K)
- = G 128x48 8x16 1024x768 16 . A000 NCR 77C22 [9]
- = G 128x48 8x16 1024x768 16/256K . A000 WD90C
- = G 128x48 8x16 1024x768 16 . A000 Diamond Speedstar 24X
- = G 128x48 8x16 1024x768 16/256K . A000 Cirrus CL-GD5420/5422/5426
- 5Eh = G . . 640x400 256 . . Paradise VGA,VEGA VGA
- = G . . 640x400 256 . . AST VGA Plus, NCR 77C22
- = G . . 640x400 256 . . Compaq VGA, Dell VGA
- = G 80x25 8x16 640x400 256 . . AT&T VDC600
- = G 80x25 8x16 640x400 256 . A000 NCR 77C22 [9]
- = G 80x25 8x16 640x400 256/256K . A000 WD90C
- = G 80x25 8x16 640x400 256/256K . A000 Diamond Speedstar 24X
- = G . . 800x600 16 . . Logix, ATI Prism Elite
- = G 100x37 8x16 800x600 16 . . NEL Electronics BIOS
- = G 100x75 8x8 800x600 256 . . Genoa 6400
- = G 100x75 8x8 800x600 256/256K . A000 Zymos Poach, Trident 8900
- = G 100x75 8x8 800x600 256/256K . A000 Hi Res 512
- 5Fh = G 80x25 8x16 640x400 64K . . STB Lightspeed ET4000/W32P
- = G . . 640x480 256 . . Paradise VGA
- = G . . 640x480 256 . . AST VGA Plus, NCR 77C22
- = G . . 640x480 256 . . Compaq VGA, Dell VGA
- = G . . 640x480 256 . . Hewlett-Packard D1180A
- = G 80x30 8x16 640x480 256 . . AT&T VDC600 (512K)
- = G 80x30 8x16 640x480 256 . A000 NCR 77C22 [9]
- = G 80x30 8x16 640x480 256/256K . A000 WD90C
- = G 80x30 8x16 640x480 256/256K . A000 Diamond Speedstar 24X
- = G 80x30 8x16 640x480 256/256K . A000 Cirrus CL-GD5420/5422/5426
- = G . . 1024x768 16 . . Logix, ATI Prism Elite
- = G . . 1024x768 16 . . Maxxon, Imtec
- = G 128x48 8x16 1024x768 16 . . Genoa 6400
- = G 128x48 8x16 1024x768 16/256K . A000 Zymos Poach, Hi Res 512
- = G 128x48 8x16 1024x768 16/256K . A000 Trident TVGA 88/8900 512K
- 60h = T 132x25 8x14 . 16/64 8 B800 Quadram Ultra VGA
- = T 132x25 8x14 . 16 . . Genoa 6400
- = T 132x25 8x14 . 16 . . Genoa SuperEGA BIOS 3.0+
- = T 132x25 . . . . . Cirrus 5320 chipset
- = T 132x25 . . 16 . . Chips&Technologies chipset
- = G 80x??? . ???x400 . . . Corona/Cordata BIOS 4.10+
- = G 80x25 8x16 640x400 256 1 A000 Ahead A, Ahead B
- = G . . 752x410 . . . VEGA VGA
- = G . . 752x410 16 . . Tatung VGA
- = G . . 752x410 16 . . Video7 V-RAM VGA
- = G 128x48 8x16 1024x768 4/256K . A000 Trident TVGA 8900
- = G 128x48 8x16 1024x768 256/256K . A000 WD90C
- = G 128x48 8x16 1024x768 256/256K . A000 Diamond Speedstar 24X
- = G 128x48 8x16 1024x768 256/256K . A000 Cirrus CL-GD5420/5422/5426
- = G 144x54 8x16 1152x864 . . A000 Diamond Stealth64 Video 2xx1
- 61h = T 132x29 8x12 . 16/64 8 B800 Quadram Ultra VGA
- = T 132x29 8x8 . 16 . . Genoa 6400
- = T 132x29 8x8 . 16 . . Genoa SuperEGA BIOS 3.0+
- = T 132x50 . . . . . Cirrus 5320 chipset
- = T 132x50 . . 16 . . Chips&Technologies chipset
- = G . . ???x400 . . . Corona/Cordata BIOS 4.10+
- = G 80x25 8x16 640x400 256 . A000 ATI VGA Wonder,VGA Wonder+
- = G 80x25 8x16 640x400 256 . A000 ATI Ultra 8514A,ATI XL
- = G 80x25 8x16 640x400 . . A000 Diamond Stealth64 Video 2xx1
- = G 80x30 8x16 640x480 256 1 A000 Ahead A, Ahead B (512K)
- = G . . 720x540 . . . VEGA VGA
- = G . . 720x540 16 . . Tatung VGA
- = G . . 720x540 16 . . Video7 V-RAM VGA
- = G 96x64 8x16 768x1024 16/256K . A000 Trident TVGA 88/8900 512K
- = G 128x48 8x16 1024x768 256 . A000 NCR 77C22 [1,9]
- = G 144x54 8x16 1152x864 . . A000 Diamond Stealth64 Video 2xx1
- 62h = T 132x32 8x11 . 16/64 6 B800 Quadram Ultra VGA
- = T 132x32 8x12 . 16 . . Genoa 6400
- = T 132x32 8x11 . 16 . . Genoa SuperEGA BIOS 3.0+
- = G . . 640x450 16 . . Cirrus 510/520 chipset
- = G 80x30 8x16 640x480 256 . A000 ATI VGA Wonder,VGA Wonder+
- = G 80x30 8x16 640x480 256 . A000 ATI Ultra 8514A,ATI XL
- = G 80x30 8x16 640x480 32K . A000 WD90C
- = G 80x30 8x16 640x480 32K . A000 Diamond Speedstar 24X
- = G . . 800x600 . . . VEGA VGA
- = G . . 800x600 16 . . Tatung VGA
- = G . . 800x600 16 . . Video7 V-RAM VGA
- = G 100x75 8x8 800x600 256 1 A000 Ahead A, Ahead B (512K)
- = G 128x48 8x16 1024x768 256/256K . A000 Trident TVGA 8900, Zymos
- = G 128x48 8x16 1024x768 256 . A000 NCR 77C22 [9]
- 63h = T 132x44 8x8 . 16/64 5 B800 Quadram Ultra VGA
- = T 132x44 8x8 . 16 . . Genoa 6400
- = T 132x44 8x8 . 16 . . Genoa SuperEGA BIOS 3.0+
- = G . . 720x540 16 . . MORSE VGA
- = G . . 720x540 16 . . Cirrus 510/520 chipset
- = G 100x42 8x14 800x600 256 . A000 ATI VGA Wonder,VGA Wonder+
- = G 100x42 8x14 800x600 256 . A000 ATI Ultra 8514A,ATI XL
- = G . . 800x600 32K . A000 WD90C
- = G . . 800x600 32K . A000 Diamond Speedstar 24X
- = G 128x48 7x16 1024x768 256 1 A000 Ahead B (1MB)
- = G . . 1024x768 2 . . Video7 V-RAM VGA
- 64h = T 132x60 8x8 . 16 . . Genoa 6400
- = G . . 640x480 64K . A000 Cirrus CL-GD 5422/5426
- = G . . 800x600 16 . . MORSE VGA
- = G . . 800x600 16 . . Cirrus 510/520 chipset
- = G . . 800x600 ??? . . SAMPO-Mira VGA
- = G . . 1024x768 4 . . Video7 V-RAM VGA
- = G 128x48 8x16 1024x768 256 . A000 ATI VGA Wonder Plus,ATI XL
- = G 160x64 8x16 1280x1024 16/256K . A000 WD90C [1]
- = G 160x64 8x16 1280x1024 16/256K . A000 Diamond Speedstar 24X [1]
- 65h = G . . 800x600 64K . A000 Cirrus CL-GD 5422/5426
- = G . . 1024x768 16 . . Video7 V-RAM VGA
- = G 128x48 8x16 1024x768 16 . A000 ATI VGA Wonder
- 66h = T 80x50 8x8 640x400 16/256K . B800 WD90C
- = T 80x50 8x8 . 16 . B800 Diamond Speedstar 24X
- = G . . 640x400 256 . . Tatung VGA
- = G . . 640x400 256 . . Video7 V-RAM VGA
- = G . . 640x480 32K . A000 Cirrus CL-GD 5422/5426
- 67h = T 80x43 8x8 640x344 16/256K . B800 WD90C
- = T 80x43 8x8 . 16 . B800 Diamond Speedstar 24X
- = G . . 640x480 256 . . Video7 V-RAM VGA
- = G . . 800x600 32K . A000 Cirrus CL-GD 5422/5426
- = G 128x48 8x16 1024x768 4 . A000 ATI VGA Wonder
- = G 160x64 8x16 1280x1024 16 . A000 NCR 77C22 [1,9]
- 68h = G 80x25 8x16 640x400 . . A000 Diamond Stealth64 Video 2xx1
- 69h = T 132x50 8x8 1056x400 16/256K . B800 WD90C
- = T 132x50 8x8 . 16 . B800 Diamond Speedstar 24X
- = G 80x30 8x16 640x480 . . A000 Diamond Stealth64 Video 2xx1
- = G . . 720x540 256 . A000 Video7 V-RAM VGA
- 6Ah = G . . 800x600 16 . A000 VESA standard interface
- = G 100x75 8x8 800x600 16 . A000 Genoa 6400
- = G 100x75 8x8 800x600 16 . A000 Diamond Speedstar 24X
- = G . . 800x600 16 . A000 Ahead A
- = G 100x75 8x8 800x600 16 1 A000 Ahead B (VESA) [see 71h]
- = G . . 800x600 16 . . Zymos Poach, Hi Res 512
- = G . . 800x600 16 . . Epson LT-386SX in CRT Mode
- = G . . 800x600 16 . . Compuadd 316SL in CRT Mode
- = G 100x37 8x16 800x600 16/256K . A000 Cirrus CL-GD5420/5422/5426
- = G 100x37 8x16 800x600 16 . A000 Diamond Stealth64 Video 2xx1
- = G 100x42 8x14 800x600 . . A000 ATI VGA Wonder (undoc)
- = G . . 800x600 16 . A000 Chips&Technologies chipset
- = G 160x64 8x16 1280x1024 256 . A000 NCR 77C22 [1,9]
- 6Bh = T 100x37 8x16 . 16 . . Genoa 6400
- = T 100x37 8x16 . . . . NEL Electronics BIOS
- = G 100x37 8x16 800x600 . . A000 Diamond Stealth64 Video 2xx1
- 6Ch = G 80x30 8x16 640x480 16M . A000 Trident 8900CL/BIOS C04
- = G 100x75 8x8 800x600 256 . . Genoa 6400
- = G 128x48 8x16 1024x768 2 . A000 Diamond Stealth64 Video 2xx1
- = G 160x60 8x16 1280x960 16/256K . A000 WD90C [1]
- = G 160x60 8x16 1280x960 16/256K . A000 Diamond Speedstar 24X [1]
- = G 160x64 8x16 1280x1024 16/256K . A000 Cirrus CL-GD 5422/5426 [1]
- 6Dh = G 80x25 8x14 640x350 64K . A000 STB Lightspeed ET4000/W32P
- = G 128x48 8x16 1024x768 . . A000 Diamond Stealth64 Video 2xx1
- = G 160x64 8x16 1280x1024 256/256K . A000 Cirrus CL-GD 5422/5426 [1]
- 6Eh = G 40x25 8x8 320x200 64K . A000 Cirrus CL-GD 5422/5426
- = G 160x64 8x16 1280x1024 2 . A000 Diamond Stealth64 Video 2xx1
- 6Fh = G 40x25 8x8 320x200 16M . A000 Cirrus CL-GD 5422/5426
- = G 160x64 8x16 1280x1024 . . A000 Diamond Stealth64 Video 2xx1
- 70h = extended mode set (see AX=0070h) . Everex Micro Enhancer EGA
- = T 40x25 8x8 . 16 8 B800 Quadram (CGA double scan)
- = T 40x25 8x8 (CGA dblscan) . . Genoa SuperEGA BIOS 3.0+
- = G . . 360x480 256 . . Cirrus 510/520/5320 chips
- = G 90x28 8x14 720x392 16 1 A000 Ahead B
- = G 80x30 8x16 640x480 . . A000 Diamond Stealth64 Video 2xx1
- = G . . 800x600 16 . . C&T chipset, Cardinal
- = G . . 1024x480 256 . A000 Trident 8900C BIOS C3.0
- 71h = T 80x25 8x8 . 16 8 B800 Quadram (CGA double scan)
- = T 80x25 8x8 (CGA dblscan) . . Genoa SuperEGA BIOS 3.0+
- = G . . 528x400 256 . . Cirrus 510/520 chipset
- = G 80x30 8x16 640x480 16M . A000 Cirrus CL-GD 5422/5426
- = G 80x30 8x16 640x480 . . A000 Diamond Stealth64 Video 2xx1
- = G 100x35 8x16 800x600 16/64 . A000 NSI Smart EGA+
- = G 100x75 8x8 800x600 16 1 A000 Ahead B (same as 6Ah)
- = G . . 960x720 16 . . C&T chipset, Cardinal
- = G . . 1024x480 256 . A000 Trident 8900C BIOS C3.0
- 72h = T 80x60 8x8 . 16 . B800 Quadram Ultra VGA
- = T 80x60 8x8 . 16 . B800 Genoa 6400
- = T 80x60 8x8 . 16 . B800 Genoa SuperEGA BIOS 3.0+
- = G . . 528x480 256 . . Cirrus 510/520 chipset
- = G 80x25 8x19 640x480 16 1 A000 DOS/V w/ any VGA
- = G 80x30 8x16 640x480 . . A000 Diamond Stealth64 Video 2xx1
- = G . . 640x480 32K . A000 ATI
- = G . . 640x480 16M . A000 WD90C
- = G . . 640x480 16M . A000 Diamond Speedstar 24X
- = G . . 1024x768 16 . . C&T chipset, Cardinal
- 73h = G 80x60 8x8 640x480 16 . A000 Quadram Ultra VGA
- = G 80x60 8x8 640x480 16 . . Genoa 6400
- = G 80x60 8x8 640x480 16 . . Genoa SuperEGA BIOS 3.0+
- = G 100x37 8x16 800x600 . . A000 Diamond Stealth64 Video 2xx1
- = T 80x25 8x19 640x475 16 1 none DOS/V, emulated in VGA graph
- 74h = T 80x66 8x8 . 16 . B800 Quadram Ultra VGA
- = T 80x66 8x8 . 16 . B800 Genoa 6400
- = T 80x66 8x8 . 16 . B800 Genoa SuperEGA BIOS 3.0+
- = G . . 640x400 2 . B800 Toshiba 3100 AT&T mode
- = G 80x30 8x16 640x480 32K . A000 Trident 8900C/BIOS C03
- = G 100x37 8x16 800x600 . . A000 Diamond Stealth64 Video 2xx1
- = G 128x48 8x16 1024x768 16 1 A000 Ahead A, Ahead B (512K)
- = G . . 1024x768 64K . A000 Cirrus CL-GD 5422/5426 [1]
- 75h = G 80x30 8x16 640x480 64K . A000 Trident 8900C/BIOS C03
- = G 80x66 . 640x528 16??? . A000 Quadram Ultra VGA
- = G 80x66 . 640x528 16 . . Genoa SuperEGA BIOS 3.0+
- = G 100x37 8x16 800x600 . . A000 Diamond Stealth64 Video 2xx1
- = G 128x48 8x16 1024x768 4 1 A000 Ahead B
- 76h = T 94x29 8x14 . 16 . B800 Quadram Ultra VGA
- = T 94x29 8x14 . . . . Genoa SuperEGA BIOS 3.0+
- = G 100x75 8x8 800x600 32K . A000 Trident 8900C/BIOS C03
- = G 128x48 8x16 1024x768 2 1 A000 Ahead B
- = G 128x48 8x16 1024x768 . . A000 Diamond Stealth64 Video 2xx1
- 77h = G 94x29 . 752x410 16??? . A000 Quadram Ultra VGA
- = G 94x29 . 752x410 16 . . Genoa SuperEGA BIOS 3.0+
- = G 100x75 8x8 800x600 64K . A000 Trident 8900C/BIOS C03
- = G 128x48 8x16 1024x768 . . A000 Diamond Stealth64 Video 2xx1
- 78h = T 100x37 8x16 . 16 . . Genoa 6400
- = T 100x75 8x8 . 16 . B800 Quadram Ultra VGA
- = T 100x75 8x8 . . . . Genoa SuperEGA BIOS 3.0+
- = G . . 640x400 256 . . STB VGA/EM-16 Plus
- = G . . 640x400 256 . . Cardinal, C&T chipset
- = G . . 640x400 256 . . Cirrus 5320 chipset
- 79h = G . . 640x480 256 . . Cardinal, C&T chipset
- = G 100x75 . 800x600 16??? . A000 Quadram Ultra VGA
- = G 100x75 8x8 800x600 16 . . Genoa SuperEGA BIOS 3.0+
- = G 100x75 8x8 800x600 16 . . Genoa 6400
- 7Ah = T 114x60 8x8 . 16 . B800 Quadram Ultra VGA
- = T 114x60 8x8 . . . . Genoa SuperEGA BIOS 3.0+
- = G . . 720x540 256 . . C&T chipset, Cardinal
- 7Bh = G . . 800x600 256 . . C&T chipset, Cardinal
- = G 114x60 . 912x480 16??? . A000 Quadram Ultra VGA
- = G . . 912x480 16 . . Genoa SuperEGA BIOS 3.0+
- 7Ch = G . . 512x512 16 . . Genoa
- = G . . 800x600 256 . . C&T 82C453 chipset
- = G 200x75 8x16 1600x1200 . [16] . A000 Diamond Stealth64 Video 2xx1
- 7Dh = G 64x32 8x16 512x512 256 . . Genoa
- 7Eh = special mode set (see AX=007Eh) . Paradise VGA, AT&T VDC600
- = G 80x25 8x16 640x400 256 . . Genoa 6400
- = G . . 1024x768 256 . . C&T 82C453 chipset
- = G 90x43 . . mono . B000 HERCULES.COM on HGC [14]
- 7Fh = special function set (see AX=007Fh/BH=00h) Paradise VGA, AT&T VDC600
- = G 128x48 8x16 1024x768 4 . . Genoa 6400
- = G 90x29 . . mono . B000 HERCULES.COM on HGC [14]
- 82h = T 80x25 . . B&W . . AT&T VDC overlay mode [6]
- 83h = T 80x25 . . . . . AT&T VDC overlay mode [6]
- 86h = G . . 640x200 B&W . . AT&T VDC overlay mode [6]
- 88h = G 90x43 8x8 720x348 mono . B000 Hercules + MSHERC.COM
- C0h = G . . 640x400 2/prog palette . AT&T VDC overlay mode [6]
- = G . . 640x400 2/prog palette . Olivetti Quaderno overlay
- C4h = disable output . . . . AT&T VDC overlay mode [6]
- C8h = G 80x50 8x8 640x400 2 . B800 Olivetti Quaderno overlay
- D0h = G . . 640x400 2 . B800 DEC VAXmate AT&T mode
- Notes:
- [1] interlaced only
- [2] for ATI EGA Wonder, mode 08h is only valid if SMS.COM is loaded resident.
- SMS maps mode 08h to mode 27h if the byte at location 0040:0063 is 0B4h,
- otherwise to mode 23h, thus selecting the appropriate (monochrome or
- color) 132x25 character mode.
- for ATI VGA Wonder, mode 08h is the same, and only valid if VCONFIG loaded
- resident
- [3] early XGA boards support 132-column text but do not have this BIOS mode
- [4] DESQview intercepts calls to change into these two modes (21h is page 0,
- 22h is page 1) even if there is no Hercules graphics board installed
- [5] ATI BIOS v4-1.00 has a text-scrolling bug in this mode
- [6] for AT&T VDC overlay modes, BL contains the DEB mode, which may be 06h,
- 40h, or 44h
- [7] BIOS text support is broken in this undocumented mode; scrolling moves
- only about 1/3 of the screen (and does even that portion incorrectly),
- while screen clears only clear about 3/4.
- [8] The Oak OTI-037/067/077 modes are present in the Oak VGA BIOS, which OEMs
- may choose to use only partially or not at all; thus, not all Oak boards
- support all "Oak" modes listed here
- [9] this card uses the full 128K A000h-BFFFh range for the video buffer,
- precluding the use of a monochrome adapter in the same system
- [10] mode 17h supported by Tseng ET4000 BIOS 8.01X dated 09/14/90, but not
- v8.01X dated 02/28/92; mode 21h supported by 02/28/92 version but not
- 09/14/90 version
- [11] HERKULES simulates a 90x45 text mode in Hercules graphics mode; the
- installation check for HERKULES.COM is the signature "Herkules" two
- bytes beyond the INT 10 handler
- [12] The Realtek RTVGA BIOS v3.C10 crashes when attempting to switch into
- modes 21h or 27h; this version of the BIOS also sets the BIOS data area
- incorrectly for extended text modes, resulting in scrolling after only
- 24 lines (the VMODE.EXE utility does set the data area correctly)
- [13] The Tandy 1000SL/TL BIOS does not actually support this mode
- [14] HERCULES.COM is a graphics-mode BIOS extension for Hercules-compatible
- graphics cards by Soft Warehouse, Inc. Its installation check is to
- test whether the word preceding the INT 10 handler is 4137h.
- [15] The Hercules-graphics video modes for HERCBIOS (shareware by Dave
- Tutelman) may be changed by a command-line switch; the 90x43
- character-cell mode's number is always one higher than the 90x29 mode
- (whose default is mode 08h)
- [16] Stealth64 Video 2001-series BIOS v1.03 reports 76 lines for mode 7Ch,
- resulting in incorrect scrolling for TTY output (scrolling occurs only
- after the end of the 76th line, which is not displayed)
- [17] For 43-line text on EGA or 43/50-line text on VGA, you must load an 8x8
- font using AX=1102h after switching to mode 3; VGA may also require
- using INT 10/AH=12h/BL=30h
- SeeAlso: #0010,#0081,#0123
- Index: video modes
- Index: installation check;HERKULES|installation check;HERCULES.COM
- --------V-100070-----------------------------
- INT 10 - VIDEO - Everex Micro Enhancer EGA/Viewpoint VGA - EXTENDED MODE SET
- AX = 0070h
- BL = mode (see #0010)
- Desc: specify a proprietary display mode on the Everex Micro Enhancer or
- Viewpoint video adapters
- SeeAlso: AH=00h,AX=6F05h,AX=7000h/BX=0004h,AH=FFh"GO32"
-
- (Table 0010)
- Values for Everex video mode:
- text/ text pixel pixel colors disply scrn monitor adapter
- grph resol box resolution pages addr
- 00h = G . . 640x480 16 . . multisync EGA,VGA
- 01h = G . . 752x410 16 . . multisync EGA,VGA
- 02h = G . . 800x600 16 . . multisync EGA,VGA
- 03h = T 80x34 . . . . . multisync EGA,VGA
- 04h = T 80x60 . . . . . multisync EGA,VGA
- 05h = T 94x29 . . . . . multisync EGA only
- 06h = T 94x51 . . . . . multisync EGA only
- 07h = T 100x43 8x14 . 16 . . . VGA only
- 08h = T 100x75 8x8 . 16 . . . VGA only
- 09h = T 80x44 . . . . . EGA EGA only
- 0Ah = T 132x25 . . . . . EGA EGA,VGA
- 0Bh = T 132x44 . . . . . EGA EGA,VGA
- 0Ch = T 132x25 . . . . . CGA EGA only
- 0Dh = T 80x44 . . . . . mono EGA only
- 0Eh = T 132x25 . . . . . mono
- 0Fh = T 132x44 . . . . . mono
- 10h = reserved
- 11h = G . . 1280x350 4 . . . EGA only
- 12h = G . . 1280x600 4 . . . EGA only
- 13h = G . . 640x350 256 . . . EGA,EV673
- 14h = G . . 640x400 256 . . .
- 15h = G . . 512x480 256 . . .
- 16h = T 80x30 8x16 . 256 . . . VGA only
- 18h = T 100x27 8x16 . 16 . . . VGA only
- 20h = G . . 1024x768 16 . . . Everex 629,678
- . . . . . . . Everex EV-673
- 21h = T 160x64 8x16 1280x1024 16 . . . 1MB VGA only
- 30h = G . . 640x480 256 . . . Everex 629,678
- . . . . . . . Everex EV-673
- 31h = G . . 800x600 256 . . . Everex 629,678
- . . . . . . . Everex EV-673
- 32h = G 128x48 8x16 1024x768 256 . . . 1MB VGA only
- 40h = T 132x30 8x16 . 16 . . . VGA only
- 50h = T 132x32 8x16 . mono . . . VGA only
- 62h = G 40x25 8x8 320x200 32K . . . Vwpt TC (EV629)
- 70h = G 64x30 8x16 512x480 32K . . . Viewpoint TC
- 71h = G 80x30 8x16 640x480 32K . . . Viewpoint TC
- 76h = G 64x30 8x16 512x480 16M . . . Viewpoint TC
- 77h = G 80x30 8x16 640x480 16M . . . Viewpoint TC
- SeeAlso: #0009,#0123
- Index: video modes;Everex
- --------V-10007E-----------------------------
- INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - SET SPECIAL MODE
- AX = 007Eh
- BX = horizontal dimension of the mode desired
- CX = vertical dimension of the mode desired
- (both BX/CX in pixels for graphics modes, rows for alpha modes)
- DX = number of colors of the mode desired (0000h for monochrome modes)
- Return: BH = 7Eh if successful (Paradise VGA)
- AL = 7Eh if successful (AT&T VDC600)
- Desc: specify a display mode by resolution rather than mode number
- SeeAlso: AH=00h,AX=0070h,AX=007Fh/BH=00h,AX=6F05h,AH=FFh"GO32"
- Index: video modes;Paradise|video modes;AT&T
- --------V-10007FBH00-------------------------
- INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - SET VGA OPERATION
- AX = 007Fh
- BH = 00h
- Return: AL = 7Fh if successful (AT&T VDC600)
- BH = status (Paradise/Dell)
- 00h invalid function
- 7Fh successful
- SeeAlso: AX=007Fh/BH=01h,AX=007Fh/BH=02h
- --------V-10007FBH01-------------------------
- INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - SET NON-VGA OPERATION
- AX = 007Fh
- BH = 01h
- Return: AL = 7Fh if successful (AT&T VDC600)
- BH = status (Paradise/Dell)
- 00h invalid function
- 7Fh successful
- Note: color modes (0,1,2,3,4,5,6) will set non-VGA CGA operation, monochrome
- mode 7 will set non-VGA MDA/Hercules operation
- SeeAlso: AX=007Fh/BH=00h,AX=007Fh/BH=02h
- --------V-10007FBH02-------------------------
- INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - QUERY MODE STATUS
- AX = 007Fh
- BH = 02h
- Return: AL = 7Fh if successful (AT&T VDC600)
- BH = status (Paradise/Dell)
- 00h invalid function
- 7Fh successful
- ---if successful---
- BL = 00h if operating in VGA mode, 01h if non-VGA mode
- CH = total video RAM size in 64k byte units
- CL = video RAM used by the current mode
- Note: under Novell DOS 7 TaskMgr Multitasker, this call always returns 0K
- video memory in CX
- SeeAlso: AX=007Fh/BH=00h,AX=007Fh/BH=01h
- --------V-10007FBH03-------------------------
- INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - LOCK CURRENT MODE
- AX = 007Fh
- BH = 03h
- Return: AL = 7Fh if successful (AT&T VDC600)
- BH = status (Paradise/Dell)
- 00h invalid function
- 7Fh successful
- Desc: allows current mode (VGA or non-VGA) to survive re-boot
- SeeAlso: AX=007Eh,AX=007Fh/BH=04h,AX=007Fh/BH=06h,AH=FFh"Oak"
- --------V-10007FBH04-------------------------
- INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - ENTER MDA EMULATION MODE
- AX = 007Fh
- BH = 04h
- Return: AL = 7Fh if successful (AT&T VDC600)
- BH = status (Paradise/Dell)
- 00h invalid function
- 7Fh successful
- SeeAlso: AX=007Eh,AX=007Fh/BH=03h,AX=007Fh/BH=05h,AH=FFh"Oak"
- --------V-10007FBH05-------------------------
- INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - ENTER CGA EMULATION MODE
- AX = 007Fh
- BH = 05h
- Return: AL = 7Fh if successful (AT&T VDC600)
- BH = status (Paradise/Dell)
- 00h invalid function
- 7Fh successful
- SeeAlso: AX=007Eh,AX=007Fh/BH=03h,AX=007Fh/BH=04h,AH=FFh"Oak"
- --------V-10007FBH06-------------------------
- INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - ENTER MONOCHROME VGA MODE
- AX = 007Fh
- BH = 06h
- Return: AL = 7Fh if successful (AT&T VDC600)
- BH = status (Paradise/Dell)
- 00h invalid function
- 7Fh successful
- Note: this function also switches to video mode 7
- SeeAlso: AX=007Eh,AX=007Fh/BH=03h,AX=007Fh/BH=07h,AH=FFh"Oak"
- --------V-10007FBH07-------------------------
- INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - ENTER COLOR VGA MODE
- AX = 007Fh
- BH = 07h
- Return: AL = 7Fh if successful (AT&T VDC600)
- BH = status (Paradise/Dell)
- 00h invalid function
- 7Fh successful
- Note: this function also switches to video mode 3
- SeeAlso: AX=007Eh,AX=007Fh/BH=03h,AX=007Fh/BH=06h,AH=FFh"Oak"
- --------V-10007F-----------------------------
- INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - EXTENDED DATA REGISTER ACCESS
- AX = 007Fh
- BH = function
- 0Ah,0Bh,0Ch,0Dh,0Eh,0Fh WRITE PARADISE REGISTERS 0,1,2,3,4,5
- (port 03CEh indices 0Ah,0Bh,0Ch,0Dh,0Eh,0Fh)
- BL = value to set in the paradise register
- 1Ah,1Bh,1Ch,1Dh,1Eh,1Fh READ PARADISE REGISTERS 0,1,2,3,4,5
- (port 03CEh indices 0Ah,0Bh,0Ch,0Dh,0Eh,0Fh)
- Return: BL = value of the paradise register
- BH = 7Fh if successful
- 29h-2Fh ??? (Paradise VGA for Dell, 7/24/91)
- Return: AL = 7Fh if successful (AT&T VDC600)
- BH = status (Paradise/Dell)
- 00h invalid function
- 7Fh successful
- SeeAlso: AX=007Eh,AX=007Fh/BH=03h,AX=007Fh/BH=05h,AH=FFh"Oak"
- --------V-10007FBH60-------------------------
- INT 10 - Paradise VGA - ???
- AX = 007Fh
- BH = 60h
- BL = ??? (00h-13h)
- ???
- Return: BH = status (00h failed or not supported, 7Fh successful)
- ???
- Note: this function is supported by the 5/14/93 ROM for the Dell 486D
- SeeAlso: AX=007Fh/BH=61h
- --------V-10007FBH61-------------------------
- INT 10 - Paradise VGA - ???
- AX = 007Fh
- BH = 61h
- ES:DI -> buffer for list of ??? (see #0011)
- Return: BH = status (00h failed or not supported, 7Fh successful)
- ???
- Note: this function is supported by the 5/14/93 ROM for the Dell 486D
- SeeAlso: AX=007Fh/BH=60h
-
- Format of Paradise VGA list entry:
- Offset Size Description (Table 0011)
- 00h BYTE ??? or 00h if end of list
- 01h BYTE ???
- 02h WORD ???
- 04h WORD ???
- 06h WORD ???
- --------V-10007FBXA500-----------------------
- INT 10 - Paradise VGA - ???
- AX = 007Fh
- BX = A500h
- ???
- Return: BH = status (00h failed or not supported, 7Fh successful)
- ???
- Note: this function is supported by the 5/14/93 ROM for the Dell 486D
- SeeAlso: AX=007Fh/BH=A6h
- --------V-10007FBHA5-------------------------
- INT 10 - Paradise VGA - ???
- AX = 007Fh
- BH = A5h
- BL = ???
- bits 3-0: ??? (0-4)
- bits 5,4: ???
- ???
- Return: BH = status (00h failed or not supported, 7Fh successful)
- ???
- Note: this function is supported by the 5/14/93 ROM for the Dell 486D
- --------V-10007FBHA6-------------------------
- INT 10 - Paradise VGA - ???
- AX = 007Fh
- BH = A6h
- ???
- Return: BH = status (00h failed or not supported, 7Fh successful)
- ???
- Note: this function is supported by the 5/14/93 ROM for the Dell 486D
- SeeAlso: AX=007Fh/BH=A5h
- --------V-1001-------------------------------
- INT 10 - VIDEO - SET TEXT-MODE CURSOR SHAPE
- AH = 01h
- CH = cursor start and options (see #0012)
- CL = bottom scan line containing cursor (bits 0-4)
- Return: nothing
- Desc: specify the starting and ending scan lines to be occupied by the
- hardware cursor in text modes
- Notes: buggy on EGA systems--BIOS remaps cursor shape in 43 line modes, but
- returns unmapped cursor shape
- UltraVision scales size to the current font height by assuming 14-line
- monochrome and 8-line color fonts; this call is not valid if cursor
- emulation has been disabled
- applications which wish to change the cursor by programming the
- hardware directly on EGA or above should call INT 10/AX=1130h or
- read 0040h:0085h first to determine the current font height
- on some adapters, setting the end line greater than the number of lines
- in the font will result in the cursor extending to the top of the
- next character cell on the right
- BUG: AMI 386 BIOS and AST Premier 386 BIOS will lock up the system if AL
- is not equal to the current video mode
- SeeAlso: AH=03h,AX=CD05h,AH=12h/BL=34h,#3556
-
- Bitfields for cursor start and options:
- Bit(s) Description (Table 0012)
- 7 should be zero
- 6,5 cursor blink
- (00=normal, 01=invisible, 10=erratic, 11=slow)
- (00=normal, other=invisible on EGA/VGA)
- 4-0 topmost scan line containing cursor
- --------V-1002-------------------------------
- INT 10 - VIDEO - SET CURSOR POSITION
- AH = 02h
- BH = page number
- 0-3 in modes 2&3
- 0-7 in modes 0&1
- 0 in graphics modes
- DH = row (00h is top)
- DL = column (00h is left)
- Return: nothing
- SeeAlso: AH=03h,AH=05h,INT 60/DI=030Bh,MEM 0040h:0050h
- --------V-1003-------------------------------
- INT 10 - VIDEO - GET CURSOR POSITION AND SIZE
- AH = 03h
- BH = page number
- 0-3 in modes 2&3
- 0-7 in modes 0&1
- 0 in graphics modes
- Return: AX = 0000h (Phoenix BIOS)
- CH = start scan line
- CL = end scan line
- DH = row (00h is top)
- DL = column (00h is left)
- Notes: a separate cursor is maintained for each of up to 8 display pages
- many ROM BIOSes incorrectly return the default size for a color display
- (start 06h, end 07h) when a monochrome display is attached
- SeeAlso: AH=01h,AH=02h,AH=12h/BL=34h,MEM 0040h:0050h,MEM 0040h:0060h
- --------V-1004-------------------------------
- INT 10 - VIDEO - READ LIGHT PEN POSITION (except VGA)
- AH = 04h
- Return: AH = light pen trigger flag
- 00h not down/triggered
- 01h down/triggered
- DH,DL = row,column of character light pen is on
- CH = pixel row (graphics modes 04h-06h)
- CX = pixel row (graphics modes with >200 rows)
- BX = pixel column
- Desc: determine the current position and status of the light pen (if
- present)
- Notes: on a CGA, returned column numbers are always multiples of 2 (320-
- column modes) or 4 (640-column modes)
- returned row numbers are only accurate to two lines
- --------V-1004------------------------------------
- INT 10 - HUNTER 16 - GET CURSOR ADDRESS
- AH = 04h
- BH = page
- Return: DH = row (0..24)
- DL = column (0..79)
- CH = cursor pixel Y-address (0..199)
- CL = cursor pixel X-address (0..639)
- Notes: the Husky Hunter 16 is an 8088-based ruggedized laptop. Other family
- members are the Husky Hunter, Husky Hunter 16/80, and Husky Hawk.
- pixel coordinates are for the lower left corner of the character cell
- containing the cursor
- SeeAlso: AH=60h"HUNTER"
- --------V-1005-------------------------------
- INT 10 - VIDEO - SELECT ACTIVE DISPLAY PAGE
- AH = 05h
- AL = new page number (00h to number of pages - 1) (see #0009)
- Return: nothing
- Desc: specify which of possibly multiple display pages will be visible
- Note: to determine whether the requested page actually exists, use AH=0Fh
- to query the current page after making this call
- SeeAlso: AH=0Fh,AH=43h,AH=45h,MEM 0040h:0062h,MEM 0040h:004Eh
- --------V-100500-----------------------------
- INT 10 - VIDEO - Corona/Cordata BIOS v4.10+ - SET GRAPHICS BITMAP BUFFER
- AX = 0500h
- BX = segment of buffer
- Return: nothing
- Desc: set the address of graphics bitmap buffer for video modes 60h and 61h
- SeeAlso: AX=050Fh"Corona"
- --------V-10050F-----------------------------
- INT 10 - VIDEO - Corona/Cordata BIOS v4.10+ - GET GRAPHICS BITMAP BUFFER
- AX = 050Fh
- Return: DX = segment of graphics bitmap buffer
- Desc: get the address of graphics bitmap buffer for video modes 60h and 61h
- SeeAlso: AX=0500h"Corona"
- --------V-100580-----------------------------
- INT 10 - VIDEO - PCjr, Tandy 1000 - GET CRT/CPU PAGE REGISTERS
- AX = 0580h
- Return: BH = CRT page register
- BL = CPU page register
- Notes: the CPU page determines which 16K block of the first 128K of physical
- memory will be mapped at B800h by the hardware
- the CRT page determines the start address of the memory used by the
- video controller
- SeeAlso: AH=05h"SET CRT/CPU"
- --------V-1005-------------------------------
- INT 10 - VIDEO - PCjr, Tandy 1000 - SET CRT/CPU PAGE REGISTERS
- AH = 05h
- AL = subfunction
- 81h set CPU page register
- BL = CPU page
- 82h set CRT page register
- BH = CRT page
- 83h set both CPU and CRT page registers
- BL = CPU page
- BH = CRT page
- Return: nothing
- Notes: the CPU page determines which 16K block of the first 128K of physical
- memory will be mapped at B800h by the hardware
- the CRT page determines the start address of the memory used by the
- video controller
- SeeAlso: AX=0580h
- --------V-1006-------------------------------
- INT 10 - VIDEO - SCROLL UP WINDOW
- AH = 06h
- AL = number of lines by which to scroll up (00h = clear entire window)
- BH = attribute used to write blank lines at bottom of window
- CH,CL = row,column of window's upper left corner
- DH,DL = row,column of window's lower right corner
- Return: nothing
- Note: affects only the currently active page (see AH=05h)
- BUGS: some implementations (including the original IBM PC) have a bug which
- destroys BP
- the Trident TVGA8900CL (BIOS dated 9/8/92) clears DS to 0000h when
- scrolling in an SVGA mode (800x600 or higher)
- SeeAlso: AH=07h,AH=12h"Tandy 2000",AH=72h,AH=73h,AX=7F07h,INT 50/AX=0014h
- --------V-1007-------------------------------
- INT 10 - VIDEO - SCROLL DOWN WINDOW
- AH = 07h
- AL = number of lines by which to scroll down (00h=clear entire window)
- BH = attribute used to write blank lines at top of window
- CH,CL = row,column of window's upper left corner
- DH,DL = row,column of window's lower right corner
- Return: nothing
- Note: affects only the currently active page (see AH=05h)
- BUGS: some implementations (including the original IBM PC) have a bug which
- destroys BP
- the Trident TVGA8900CL (BIOS dated 9/8/92) clears DS to 0000h when
- scrolling in an SVGA mode (800x600 or higher)
- SeeAlso: AH=06h,AH=12h"Tandy 2000",AH=72h,AH=73h,INT 50/AX=0014h
- --------V-1008-------------------------------
- INT 10 - VIDEO - READ CHARACTER AND ATTRIBUTE AT CURSOR POSITION
- AH = 08h
- BH = page number (00h to number of pages - 1) (see #0009)
- Return: AH = character's attribute (text mode only) (see #0013)
- AH = character's color (Tandy 2000 graphics mode only)
- AL = character
- Notes: for monochrome displays, a foreground of 1 with background 0 is
- underlined
- the blink bit may be reprogrammed to enable intense background colors
- using AX=1003h or by programming the CRT controller
- the foreground intensity bit (3) can be programmed to switch between
- character sets A and B on EGA and VGA cards, thus enabling 512
- simultaneous characters on screen. In this case the bit's usual
- function (intensity) is regularly turned off.
- in graphics modes, only characters drawn with white foreground pixels
- are matched by the pattern-comparison routine
- on the Tandy 2000, BH=FFh specifies that the current page should be
- used
- SeeAlso: AH=09h,AX=1003h,AX=1103h,AH=12h/BL=37h,AX=5001h
-
- Bitfields for character's display attribute:
- Bit(s) Description (Table 0013)
- 7 foreground blink or (alternate) background bright (see also AX=1003h)
- 6-4 background color (see #0014)
- 3 foreground bright or (alternate) alternate character set (see AX=1103h)
- 2-0 foreground color (see #0014)
- SeeAlso: #0025
-
- (Table 0014)
- Values for character color:
- Normal Bright
- 000b black dark gray
- 001b blue light blue
- 010b green light green
- 011b cyan light cyan
- 100b red light red
- 101b magenta light magenta
- 110b brown yellow
- 111b light gray white
- --------V-1009-------------------------------
- INT 10 - VIDEO - WRITE CHARACTER AND ATTRIBUTE AT CURSOR POSITION
- AH = 09h
- AL = character to display
- BH = page number (00h to number of pages - 1) (see #0009)
- background color in 256-color graphics modes (ET4000)
- BL = attribute (text mode) or color (graphics mode)
- if bit 7 set in <256-color graphics mode, character is XOR'ed
- onto screen
- CX = number of times to write character
- Return: nothing
- Notes: all characters are displayed, including CR, LF, and BS
- replication count in CX may produce an unpredictable result in graphics
- modes if it is greater than the number of positions remaining in the
- current row
- SeeAlso: AH=08h,AH=0Ah,AH=4Bh"GRAFIX",INT 17/AH=60h,INT 1F"SYSTEM DATA"
- SeeAlso: INT 43"VIDEO DATA",INT 44"VIDEO DATA"
- --------V-100A-------------------------------
- INT 10 - VIDEO - WRITE CHARACTER ONLY AT CURSOR POSITION
- AH = 0Ah
- AL = character to display
- BH = page number (00h to number of pages - 1) (see #0009)
- background color in 256-color graphics modes (ET4000)
- BL = attribute (PCjr, Tandy 1000 only) or color (graphics mode)
- if bit 7 set in <256-color graphics mode, character is XOR'ed
- onto screen
- CX = number of times to write character
- Return: nothing
- Notes: all characters are displayed, including CR, LF, and BS
- replication count in CX may produce an unpredictable result in graphics
- modes if it is greater than the number of positions remaining in the
- current row
- SeeAlso: AH=08h,AH=09h,AH=11h"Tandy 2000",AH=4Bh,INT 17/AH=60h
- SeeAlso: INT 1F"SYSTEM DATA",INT 43"VIDEO DATA",INT 44"VIDEO DATA"
- --------V-100B--BH00-------------------------
- INT 10 - VIDEO - SET BACKGROUND/BORDER COLOR
- AH = 0Bh
- BH = 00h
- BL = background/border color (border only in text modes)
- Return: nothing
- SeeAlso: AH=0Bh/BH=01h
- --------V-100B--BH01-------------------------
- INT 10 - VIDEO - SET PALETTE
- AH = 0Bh
- BH = 01h
- BL = palette ID
- 00h background, green, red, and brown/yellow
- 01h background, cyan, magenta, and white
- Return: nothing
- Note: this call was only valid in 320x200 graphics on the CGA, but newer
- cards support it in many or all graphics modes
- SeeAlso: AH=0Bh/BH=00h,MEM 0040h:0066h
- --------V-100B--BH02-------------------------
- INT 10 - Tandy 2000 - VIDEO - SET PALETTE ENTRY
- AH = 0Bh
- BH = 02h
- BL = palette entry number
- AL = new color value for palette entry
- Return: nothing
- Note: this interrupt is identical to INT 52 for Tandy 2000
- SeeAlso: INT 10/AH=00h,INT 10/AH=0Bh/BH=01h,INT 52"Tandy 2000"
- --------V-100C-------------------------------
- INT 10 - VIDEO - WRITE GRAPHICS PIXEL
- AH = 0Ch
- BH = page number
- AL = pixel color
- if bit 7 set, value is XOR'ed onto screen except in 256-color modes
- CX = column
- DX = row
- Return: nothing
- Desc: set a single pixel on the display in graphics modes
- Notes: valid only in graphics modes
- BH is ignored if the current video mode supports only one page
- SeeAlso: AH=0Dh,AH=46h
- --------V-100D-------------------------------
- INT 10 - VIDEO - READ GRAPHICS PIXEL
- AH = 0Dh
- BH = page number
- CX = column
- DX = row
- Return: AL = pixel color
- Desc: determine the current color of the specified pixel in grahics modes
- Notes: valid only in graphics modes
- BH is ignored if the current video mode supports only one page
- SeeAlso: AH=0Ch,AH=47h
- --------V-100E-------------------------------
- INT 10 - VIDEO - TELETYPE OUTPUT
- AH = 0Eh
- AL = character to write
- BH = page number
- BL = foreground color (graphics modes only)
- Return: nothing
- Desc: display a character on the screen, advancing the cursor and scrolling
- the screen as necessary
- Notes: characters 07h (BEL), 08h (BS), 0Ah (LF), and 0Dh (CR) are interpreted
- and do the expected things
- IBM PC ROMs dated 4/24/81 and 10/19/81 require that BH be the same as
- the current active page
- SeeAlso: AH=02h,AH=0Ah
- --------b-100E--CXABCD-----------------------
- INT 10 - V20-XT-BIOS - TELETYPE OUTPUT WITH ATTRIBUTE
- AH = 0Eh
- CX = ABCDh
- BP = ABCDh
- AL = character to write
- BH = page number
- BL = foreground color (text modes as well as graphics modes)
- Return: nothing
- Program: V20-XT-BIOS is a ROM BIOS replacement with extensions by Peter
- Koehlmann / c't magazine
- Desc: display a character on the screen, advancing the cursor and scrolling
- the screen as necessary
- Notes: characters 07h (BEL), 08h (BS), 0Ah (LF), and 0Dh (CR) are interpreted
- and do the expected things
- SeeAlso: INT 15/AH=84h"V20-XT-BIOS"
- --------V-100F-------------------------------
- INT 10 - VIDEO - GET CURRENT VIDEO MODE
- AH = 0Fh
- Return: AH = number of character columns
- AL = display mode (see #0009 at AH=00h)
- BH = active page (see AH=05h)
- Notes: if mode was set with bit 7 set ("no blanking"), the returned mode will
- also have bit 7 set
- EGA, VGA, and UltraVision return either AL=03h (color) or AL=07h
- (monochrome) in all extended-row text modes
- HP 200LX returns AL=07h (monochrome) if mode was set to AL=21h
- and always 80 resp. 40 columns in all text modes regardless of
- current zoom setting (see AH=D0h)
- when using a Hercules Graphics Card, additional checks are necessary:
- mode 05h: if WORD 0040h:0063h is 03B4h, may be in graphics page 1
- (as set by DOSSHELL and other Microsoft software)
- mode 06h: if WORD 0040h:0063h is 03B4h, may be in graphics page 0
- (as set by DOSSHELL and other Microsoft software)
- mode 07h: if BYTE 0040h:0065h bit 1 is set, Hercules card is in
- graphics mode, with bit 7 indicating the page (mode set by
- Hercules driver for Borland Turbo C)
- the Tandy 2000 BIOS is only documented as returning AL, not AH or BH
- SeeAlso: AH=00h,AH=05h,AX=10F2h,AX=1130h,AX=CD04h,MEM 0040h:004Ah
- --------V-100F56BX4756-----------------------
- INT 10 - VUIMAGE DISPLAY DRIVER (v2.20 and below)
- AX = 0F56h
- BX = 4756h
- CX = 4944h
- DL = function
- 01h installation check
- Return: AX = 5649h
- BX = 4443h
- CX = 5647h
- DH = 01h
- 02h get first video mode's parameters
- Return: AX = BIOS mode number
- BX = width in pixels
- CX = height in pixels
- DX = number of colors
- 03h get next video mode's parameters
- Return: as for DL=02h
- 04h display line???
- ES:DI -> record (see #0015)
- ???
- Return: ???
- Program: VUIMAGE is a shareware GIF/TIFF image viewer by Offe Enterprises
- Note: the use of TSR display drivers was discontinued after v2.20
- Index: installation check;VUIMAGE display driver
-
- Format of record for VUIMAGE Function 04h:
- Offset Size Description (Table 0015)
- 00h WORD row number
- 02h WORD starting column???
- 04h WORD ending column???
- ???
- --------V-100F--SIF123-----------------------
- INT 10 - FRIEZE v7.41+ - INSTALLATION CHECK
- AH = 0Fh
- SI = F123h
- DI = 321Fh
- Return: AH = number of character columns
- AL = display mode (see #0009 at AH=00h)
- BH = active page (see AH=05h)
- SI = DI = F345h if installed
- Notes: if mode was set with bit 7 set ("no blanking"), the returned mode will
- also have bit 7 set
- EGA, VGA, and UltraVision return either AL=03h (color) or AL=07h
- (monochrome) in all extended-row text modes
- SeeAlso: AH=0Fh"VIDEO",AH=4Bh"FRIEZE"
- --------V-1010-------------------------------
- INT 10 - BIOS Window Extension v1.1 - SET WINDOW COORDINATES
- AH = 10h
- CH,CL = row,column of upper left corner of window
- DH,DL = row,column of lower right corner of window
- Return: AL = status
- 00h successful
- 01h failed
- AH destroyed
- Program: BWE is a TSR by John J. Seal published in May 1986 Dr. Dobb's Journal
- Note: when a window has been set, all output via AH=0Eh is restricted to
- the specified window
- SeeAlso: AH=11h"Window",AH=12h"Window"
- --------V-1010-------------------------------
- INT 10 - VIDEO - Eagle PC2 BIOS Rev. C - SET SCROLL SPEED
- AH = 10h
- AL = speed
- 00h fast
- 01h slow (scrolling only moves characters during vertical retrace)
- Return: AH = previous speed
- --------V-1010-------------------------------
- INT 10 - Tandy 2000 - VIDEO - GET/SET CHARACTER FONTS
- AH = 10h
- AL = control value
- bit 0: set character set instead of reading it
- bit 1: high 128 characters instead of low 128 characters
- ES:BX -> new character set if AL bit 0 set
- Return: ES:BX -> current character set if AL bit 0 clear on entry
- Notes: this interrupt is identical to INT 52 on Tandy 2000
- the character set consists of 16 bytes for each of the 128 characters,
- where each of the 16 bytes describes the pixels in one scan line,
- most significant bit leftmost
- SeeAlso: AH=00h,AH=0Bh/BH=02h,AH=11h"Tandy 2000",AH=12h"Tandy 2000"
- SeeAlso: INT 52"Tandy 2000"
- --------V-101000-----------------------------
- INT 10 - VIDEO - SET SINGLE PALETTE REGISTER (PCjr,Tandy,EGA,MCGA,VGA)
- AX = 1000h
- BL = palette register number (00h-0Fh)
- = attribute register number (undocumented) (see #0016)
- BH = color or attribute register value
- Return: nothing
- Notes: on MCGA, only BX = 0712h is supported
- under UltraVision, the palette locking status (see AX=CD01h)
- determines the outcome
- SeeAlso: AX=1002h,AX=1007h,AX=CD01h
-
- (Table 0016)
- Values for attribute register number:
- 10h attribute mode control register (should let BIOS control this)
- 11h overscan color register (see also AX=1001h)
- 12h color plane enable register (bits 3-0 enable corresponding
- text attribute bit)
- 13h horizontal PEL panning register
- 14h color select register
- --------V-101001-----------------------------
- INT 10 - VIDEO - SET BORDER (OVERSCAN) COLOR (PCjr,Tandy,EGA,VGA)
- AX = 1001h
- BH = border color (00h-3Fh)
- Return: nothing
- BUG: the original IBM VGA BIOS incorrectly updates the parameter save area
- and places the border color at offset 11h of the palette table
- rather than offset 10h
- Note: under UltraVision, the palette locking status (see AX=CD01h)
- determines the outcome
- SeeAlso: AX=1002h,AX=1008h,AX=CD01h
- --------V-101002-----------------------------
- INT 10 - VIDEO - SET ALL PALETTE REGISTERS (PCjr,Tandy,EGA,VGA)
- AX = 1002h
- ES:DX -> palette register list (see #0017)
- BH = 00h to avoid problems on some adapters
- Return: nothing
- Note: under UltraVision, the palette locking status (see AX=CD01h)
- determines the outcome
- SeeAlso: AX=1000h,AX=1001h,AX=1009h,AX=CD01h
-
- Format of palette register list:
- Offset Size Description (Table 0017)
- 00h 16 BYTEs colors for palette registers 00h through 0Fh
- 10h BYTE border color
- SeeAlso: #0387
- --------V-101003-----------------------------
- INT 10 - VIDEO - TOGGLE INTENSITY/BLINKING BIT (Jr, PS, TANDY 1000, EGA, VGA)
- AX = 1003h
- BL = new state
- 00h background intensity enabled
- 01h blink enabled
- BH = 00h to avoid problems on some adapters
- Return: nothing
- Notes: although there is no function to get the current status on adapters
- prior to the VGA, bit 5 of 0040h:0065h indicates the state; on the
- VGA, use AH=1Bh and check offset 2Dh of the returned data (see #0038)
- when configured for a monochrome display, the Boca Research Multi-EGA
- with ROM v M1.1 Type D has its screen disrupted if BH is not clear
- this call is reported to be "Get Cursor Position" on the Tandy
- 1000SL/TL
- SeeAlso: AH=08h,AH=1Bh
- --------V-101007-----------------------------
- INT 10 - VIDEO - GET INDIVIDUAL PALETTE REGISTER (VGA,UltraVision v2+)
- AX = 1007h
- BL = palette or attribute (undoc) register number (see #0016)
- Return: BH = palette or attribute register value
- Note: UltraVision v2+ supports this function even on color EGA systems in
- video modes 00h-03h, 10h, and 12h; direct programming of the palette
- registers will cause incorrect results because the EGA registers are
- write-only. To guard against older versions or unsupported video
- modes, programs which expect to use this function on EGA systems
- should set BH to FFh on entry.
- SeeAlso: AX=1000h,AX=1009h
- --------V-101008-----------------------------
- INT 10 - VIDEO - READ OVERSCAN (BORDER COLOR) REGISTER (VGA,UltraVision v2+)
- AX = 1008h
- Return: BH = border color (00h-3Fh)
- Note: (see AX=1007h)
- SeeAlso: AX=1001h
- --------V-101009-----------------------------
- INT 10 - VIDEO - READ ALL PALETTE REGISTERS AND OVERSCAN REGISTER (VGA)
- AX = 1009h
- ES:DX -> 17-byte buffer for palette register list (see #0017)
- Return: nothing
- Note: UltraVision v2+ supports this function even on color EGA systems in
- video modes 00h-03h, 10h, and 12h; direct programming of the palette
- registers will cause incorrect results because the EGA registers are
- write-only. To guard against older versions or unsupported video
- modes, programs which expect to use this function on EGA systems
- should set the ES:DX buffer to FFh before calling.
- SeeAlso: AX=1002h,AX=1007h,AX=CD02h
- --------V-101010-----------------------------
- INT 10 - VIDEO - SET INDIVIDUAL DAC REGISTER (VGA/MCGA)
- AX = 1010h
- BX = register number
- CH = new value for green (0-63)
- CL = new value for blue (0-63)
- DH = new value for red (0-63)
- Return: nothing
- SeeAlso: AX=1012h,AX=1015h
- --------V-101012-----------------------------
- INT 10 - VIDEO - SET BLOCK OF DAC REGISTERS (VGA/MCGA)
- AX = 1012h
- BX = starting color register
- CX = number of registers to set
- ES:DX -> table of 3*CX bytes where each 3 byte group represents one
- byte each of red, green and blue (0-63)
- Return: nothing
- SeeAlso: AX=1010h,AX=1017h,INT 62/AX=00A5h
- --------V-101013-----------------------------
- INT 10 - VIDEO - SELECT VIDEO DAC COLOR PAGE (VGA)
- AX = 1013h
- BL = subfunction
- 00h select paging mode
- BH = 00h select 4 blocks of 64
- BH = 01h select 16 blocks of 16
- 01h select page
- BH = page number (00h to 03h) or (00h to 0Fh)
- Return: nothing
- Note: this function is not valid in mode 13h
- SeeAlso: AX=101Ah
- --------V-101015-----------------------------
- INT 10 - VIDEO - READ INDIVIDUAL DAC REGISTER (VGA/MCGA)
- AX = 1015h
- BL = palette register number
- Return: DH = red value
- CH = green value
- CL = blue value
- AX destroyed by some BIOSes
- (e.g. Tseng ET4000 BIOS v8.00n always returns AX=00C9h)
- SeeAlso: AX=1010h,AX=1017h
- --------V-101017-----------------------------
- INT 10 - VIDEO - READ BLOCK OF DAC REGISTERS (VGA/MCGA)
- AX = 1017h
- BX = starting palette register
- CX = number of palette registers to read
- ES:DX -> buffer (3 * CX bytes in size) (see also AX=1012h)
- Return: buffer filled with CX red, green and blue triples
- SeeAlso: AX=1012h,AX=1015h,INT 62/AX=00A4h
- --------V-101018-----------------------------
- INT 10 U - VIDEO - SET PEL MASK (VGA/MCGA)
- AX = 1018h
- BL = new PEL value
- Return: nothing
- SeeAlso: AX=1019h
- --------V-101019-----------------------------
- INT 10 U - VIDEO - READ PEL MASK (VGA/MCGA)
- AX = 1019h
- Return: BL = value read
- SeeAlso: AX=1018h
- --------V-10101A-----------------------------
- INT 10 - VIDEO - GET VIDEO DAC COLOR-PAGE STATE (VGA)
- AX = 101Ah
- Return: BL = paging mode
- 00h four pages of 64
- 01h sixteen pages of 16
- BH = current page
- SeeAlso: AX=1013h
- --------V-10101B-----------------------------
- INT 10 - VIDEO - PERFORM GRAY-SCALE SUMMING (VGA/MCGA)
- AX = 101Bh
- BX = starting palette register
- CX = number of registers to convert
- Return: nothing
- Desc: convert the RGB values of one or more palette registers such that the
- resulting values are grays with the same intensities as the original
- colors
- SeeAlso: AH=12h/BL=33h
- --------V-1010E0-----------------------------
- INT 10 - VIDEO - Diamond Speedstar 24 - SET 24-BIT GRAPHICS MODE
- AX = 10E0h
- BL = video mode (see also #0009 at AH=00h)
- 2Eh = 640x480
- Return: ???
- SeeAlso: AH=00h,AX=10F0h
- --------V-1010F0-----------------------------
- INT 10 - VIDEO - Tseng ET-4000 BIOS - SET HiColor GRAPHICS MODE
- AX = 10F0h
- BL = video mode (see also #0009 at AH=00h)
- 13h = 320x200x32K
- 2Dh = 640x350x32K
- 2Eh = 640x480x32K
- 2Fh = 640x400x32K
- 30h = 800x600x32K
- 3Eh = 640x480x16M (Genoa 7900)
- FFh Tseng 24-bit color mode
- BH = mode
- 2Dh = 640x480
- 2Eh = 640x480x16M
- 2Fh = 640x400
- 30h = 800x600
- 38h = 1024x768??? (Tseng ET4000/W32i)
- Return: AL = 10h if supported
- AH = status
- 00h if successful
- other on error
- Desc: switch the display into a graphics mode with 15 or more bits per pixel
- Note: the Tseng HiColor BIOS extensions are supported by:
- Diamond Computer Systems SpeedStar HiColor VGA
- Everex Systems HC VGA
- Focus Information Systems 2theMax 4000
- Cardinal Technologies VGA732
- Orchid ProDesigner IIs Genoa 7900
- SeeAlso: AH=00h,AX=10E0h,AX=10F1h,AX=10F2h
- Index: video modes;Tseng Hi-Color
- --------V-1010F1-----------------------------
- INT 10 - VIDEO - Tseng ET-4000 BIOS - GET DAC TYPE
- AX = 10F1h
- Return: AL = 10h if supported
- BL = type of digital/analog converter (see #0018)
- Desc: determine which type of digital-to-analog converter is installed on the
- display board
- SeeAlso: AX=10F0h,AX=10F2h
-
- (Table 0018)
- Values for type of DAC:
- 00h normal VGA DAC
- 01h Sierra SC1148x HiColor DAC
- ---Diamond SpeedStar 24---
- 02h new Sierra SS24 DAC (24-bit)
- ---generic Tseng BIOS v8+ ---
- 02h Sierra Mark2 (15-bit) or Mark3 (15/16-bit) DAC
- 03h ATT20c490/1/2 (15/16/24-bit)
- 04h AcuMos ADAC1 (15/16/24-bit)
- 05h unknown 15/16/24-bit DAC
- 06h Cirrus Internal 15/16/24-bit (CL-GD54xx series adapters)
- 07h Diamond SS2410 (15/24-bit)
- 08h unknown 15/16/24-bit DAC
- 09h unknown 15/16/24-bit DAC
- else other HiColor DAC
- --------V-1010F2-----------------------------
- INT 10 u - VIDEO - Tseng ET-4000 BIOS - CHECK IF HiColor MODE/SET HiColor MODE
- AX = 10F2h
- BL = function
- 00h get current HiColor mode
- 01h set 15-bit HiColor mode
- 02h set 16-bit HiColor mode
- Return: AX = 0010h if supported
- BL = video mode type
- 00h not in HiColor mode
- 01h 15-bit RGB mode
- 02h 16-bit RGB mode
- 03h 24-bit RGB mode
- Desc: determine whether the display is in a graphics mode with 15 or more
- bits per pixel color resolution
- Note: set (BL=01h/02h) only works if already in a HiColor mode
- SeeAlso: AH=0Fh,AX=10F0h,AX=10F1h
- --------V-1011-------------------------------
- INT 10 - BIOS Window Extension v1.1 - GET WINDOW COORDINATES
- AH = 11h
- Return: CH,CL = row,column of upper left corner
- DH,DL = row,column of lower right corner
- Desc: determine the portion of the display to which output is restricted
- Program: BWE is a TSR by John J. Seal published in May 1986 Dr. Dobb's Journal
- SeeAlso: AH=10h"Window",AH=12h"Window"
- --------V-1011-------------------------------
- INT 10 - Tandy 2000 - VIDEO - WRITE ATTRIBUTE ONLY
- AH = 11h
- BL = new character attribute (text modes) or color (graphics)
- CX = number of times to write attribute
- Return: nothing
- Note: this interrupt is identical to INT 52 on Tandy 2000
- SeeAlso: AH=0Ah,AH=0Bh/BH=02h,AH=11h"Tandy 2000",AH=12h"Tandy 2000"
- SeeAlso: INT 52"Tandy 2000"
- --------V-101100-----------------------------
- INT 10 - VIDEO - TEXT-MODE CHARGEN - LOAD USER-SPECIFIED PATTERNS (PS,EGA,VGA)
- AX = 1100h
- ES:BP -> user table
- CX = count of patterns to store
- DX = character offset into map 2 block
- BL = block to load in map 2
- BH = number of bytes per character pattern
- Return: nothing
- Notes: This function will cause a mode set, completely resetting
- the video environment, but without clearing the video buffer
- the current block specifiers may be determined with INT 10/AH=1Bh,
- looking at offsets 2Bh and 2Ch of the returned data (VGA only)
- (see AH=1Bh,#0038)
- SeeAlso: AX=1101h,AX=1102h,AX=1103h,AX=1104h,AX=1110h,AH=1Bh,AX=CD10h
- --------V-101101-----------------------------
- INT 10 - VIDEO - TEXT-MODE CHARGEN - LOAD ROM MONOCHROME PATTERNS (PS,EGA,VGA)
- AX = 1101h
- BL = block to load
- Return: nothing
- Notes: (see also AX=1100h)
- This function will cause a mode set, completely resetting
- the video environment, but without clearing the video buffer
- the "monochrome" patters are 8x14 pixels in size
- SeeAlso: AX=1100h,AX=1102h,AX=1103h,AX=1104h,AX=1111h,AH=1Bh,AX=CD10h
- --------V-101102-----------------------------
- INT 10 - VIDEO - TEXT-MODE CHARGEN - LOAD ROM 8x8 DBL-DOT PATTERNS (PS,EGA,VGA)
- AX = 1102h
- BL = block to load
- Return: nothing
- Notes: (see AX=1100h)
- SeeAlso: AX=1100h,AX=1101h,AX=1103h,AX=1104h,AX=1112h,AH=1Bh,AX=CD10h
- SeeAlso: MEM 0040h:0084h
- --------V-101103-----------------------------
- INT 10 - VIDEO - TEXT-MODE CHARGEN - SET BLOCK SPECIFIER (PS,EGA,VGA)
- AX = 1103h
- BL = block specifier (see #0019)
- Return: nothing
- Notes: (see also AX=1110h)
- This function allows dual character sets to appear on screen
- simultaneously
- SeeAlso: AX=1100h,AX=1101h,AX=1102h,AX=1104h,AH=1Bh,AX=CD10h
-
- Bitfields for block specifier:
- Bit(s) Description (Table 0019)
- ---EGA/MCGA---
- 0,1 block selected by characters with attribute bit 3 clear
- 2,3 block selected by characters with attribute bit 3 set
- ---VGA---
- 0,1,4 block selected by characters with attribute bit 3 clear
- 2,3,5 block selected by characters with attribute bit 3 set
- --------V-101104-----------------------------
- INT 10 - VIDEO - TEXT-MODE CHARGEN - LOAD ROM 8x16 CHARACTER SET (VGA)
- AX = 1104h
- BL = block to load
- Return: nothing
- Notes: (see AX=1100h)
- SeeAlso: AX=1100h,AX=1101h,AX=1102h,AX=1103h,AX=1114h,AH=1Bh,AX=CD10h
- --------V-1011-------------------------------
- INT 10 - VIDEO - Realtek RTVGA - TEXT-MODE CHARACTER GENERATOR FUNCTIONS
- AH = 11h
- AL = 07h load user-specified paterns and recalculate mode parms
- parameters are the same as for AX=1110h
- AL = 08h load monochrome patterns (8x14) and recalculate mode parms
- parameters are the same as for AX=1111h
- AL = 09h load ROM 8 by 8 double-dot patterns and recalculate mode parms
- parameters are the same as for AX=1112h
- AL = 0Bh load ROM 8x16 character set (VGA) and recalculate mode parms
- parameters are the same as for AX=1114h
- Note: these functions should only be called under the same conditions as
- AL=1xh (see AX=1110h"EGA")
- SeeAlso: AX=1100h,AX=1110h"CHARGEN",AX=1110h"Realtek"
- --------V-10110F-----------------------------
- INT 10 - VIDEO - Realtek RTVGA - SET USER 8x8 GRAPHICS CHARACTERS
- AX = 110Fh
- ES:BP -> user table for INT 1F
- Return: nothing
- Note: this function is meant to be called immediately after a mode set;
- results are unpredictable at other times
- SeeAlso: AX=1110h"Realtek",AX=1111h"Realtek",AX=1112h"Realtek",AX=1120h
- --------V-101110-----------------------------
- INT 10 - VIDEO - TEXT-MODE CHARGEN - LOAD USER-SPECIFIED PATTERNS (PS,EGA,VGA)
- AX = 1110h
- ES:BP -> user table
- CX = count of patterns to store
- DX = character offset into map 2 block
- BL = block to load in map 2
- BH = number of bytes per character pattern
- Return: nothing
- Notes: This function will cause a mode set, completely resetting
- the video environment, but without clearing the video buffer
- This function is designed to be called immediately after a mode set,
- it is equivalent to AX=110xh except that:
- Page 0 must be active.
- Bytes/character is recalculated.
- Max character rows is recalculated.
- CRT buffer length is recalculated.
- CRTC registers are reprogrammed as follows:
- R09 = bytes/char-1 ; max scan line (mode 7 only)
- R0A = bytes/char-2 ; cursor start
- R0B = 0 ; cursor end
- R12 = ((rows+1)*(bytes/char))-1 ; vertical display end
- R14 = bytes/char ; underline loc
- (*** BUG: should be 1 less ***)
- the current block specifiers may be determined with INT 10/AH=1Bh,
- looking at offsets 2Bh and 2Ch of the returned data (VGA only)
- (see AH=1Bh,#0038)
- SeeAlso: AX=1100h,AX=1111h,AX=1112h,AX=1114h,AH=1Bh,AX=CD10h,MEM 0040h:0084h
- --------V-101110-----------------------------
- INT 10 - VIDEO - Realtek RTVGA - SET USER GRAPHICS CHARACTERS
- AX = 1110h
- ES:BP -> user table
- CX = bytes per character
- BL = row specifier
- 00h user set
- DL = number of rows
- 01h 14 rows
- 02h 25 rows
- 03h 43 rows
- Return: nothing
- Note: this function is meant to be called immediately after a mode set;
- results are unpredictable at other times
- SeeAlso: AX=110Fh"Realtek",AX=1112h"Realtek",AX=1121h
- --------V-101111-----------------------------
- INT 10 - VIDEO - TEXT-MODE CHARGEN - LOAD ROM MONOCHROME PATTERNS (PS,EGA,VGA)
- AX = 1111h
- BL = block to load
- Return: nothing
- Notes: (see AX=1110h)
- the "monochrome" patters are 8x14 pixels in size
- SeeAlso: AX=1101h,AX=1110h,AX=1112h,AX=1114h,AH=1Bh,AX=CD10h
- --------V-101111-----------------------------
- INT 10 - VIDEO - Realtek RTVGA - SET ROM 8x14 GRAPHICS CHARACTERS
- AX = 1111h
- BL = row specifier (see AX=1121h)
- Return: nothing
- Note: this function is meant to be called immediately after a mode set;
- results are unpredictable at other times
- SeeAlso: AX=110Fh"Realtek",AX=1110h"Realtek",AX=1122h
- --------V-101112-----------------------------
- INT 10 - VIDEO - TEXT-MODE CHARGEN - LOAD ROM 8x8 DBL-DOT PATTERNS (PS,EGA,VGA)
- AX = 1112h
- BL = block to load
- Return: nothing
- Notes: (see AX=1110h)
- SeeAlso: AX=1103h,AX=1110h,AX=1111h,AX=1114h,AH=1Bh,AX=CD10h
- --------V-101112-----------------------------
- INT 10 - VIDEO - Realtek RTVGA - SET ROM 8x8 DOUBLE-DOT CHARACTERS
- AX = 1112h
- BL = row specifier (see AX=1121h)
- Return: nothing
- Note: this function is meant to be called immediately after a mode set;
- results are unpredictable at other times
- SeeAlso: AX=110Fh"Realtek",AX=1110h"Realtek",AX=1111h"Realtek",AX=1123h
- --------V-101114-----------------------------
- INT 10 - VIDEO - TEXT-MODE CHARGEN - LOAD ROM 8x16 CHARACTER SET (VGA)
- AX = 1114h
- BL = block to load
- Return: nothing
- Notes: (see AX=1110h)
- SeeAlso: AX=1104h,AX=1110h,AX=1111h,AX=1112h,AH=1Bh,AX=CD10h
- --------V-101118-----------------------------
- INT 10 - IBM SurePath BIOS - Officially "Private" Function
- AX = 1118h
- --------V-101120-----------------------------
- INT 10 - VIDEO - GRAPH-MODE CHARGEN - SET USER 8x8 GRAPHICS CHARS (PS,EGA,VGA)
- AX = 1120h
- ES:BP -> user table for INT 1F
- Return: nothing
- Note: this function is meant to be called immediately after a mode set;
- results are unpredictable at other times
- SeeAlso: AX=1121h,AX=1122h,AX=1123h,AX=1124h,AX=1129h,INT 1F"SYSTEM DATA"
- SeeAlso: INT 43"VIDEO DATA"
- --------V-101121-----------------------------
- INT 10 - VIDEO - GRAPH-MODE CHARGEN - SET USER GRAPHICS CHARACTERS (PS,EGA,VGA)
- AX = 1121h
- ES:BP -> user table
- CX = bytes per character
- BL = row specifier
- 00h user set
- DL = number of rows
- 01h 14 rows
- 02h 25 rows
- 03h 43 rows
- Return: AL = new number of rows (Diamond Stealth64 Video)
- Note: this function is meant to be called immediately after a mode set;
- results are unpredictable at other times
- SeeAlso: AX=1120h,AX=1122h,AX=1123h,AX=1124h,AX=1129h"Compaq"
- SeeAlso: AX=1129h"Diamond",INT 1F"SYSTEM DATA",INT 43"VIDEO DATA"
- --------V-101122-----------------------------
- INT 10 - VIDEO - GRAPH-MODE CHARGEN - SET ROM 8x14 GRAPHICS CHARS (PS,EGA,VGA)
- AX = 1122h
- BL = row specifier (see AX=1121h)
- Return: nothing
- Notes: this function is meant to be called immediately after a mode set;
- results are unpredictable at other times
- UltraVision v2+ sets INT 43 to the appropriate font on this call
- SeeAlso: AX=1111h,AX=1120h,AX=1121h,AX=1123h,AX=1124h,AX=1129h
- SeeAlso: INT 1F"SYSTEM DATA",INT 43"VIDEO DATA"
- --------V-101123-----------------------------
- INT 10 - VIDEO - GRAPH-MODE CHARGEN - SET ROM 8x8 DOUBLE-DOT CHARS (PS,EGA,VGA)
- AX = 1123h
- BL = row specifier (see AX=1121h)
- Return: nothing
- Notes: this function is meant to be called immediately after a mode set;
- results are unpredictable at other times
- UltraVision v2+ sets INT 43 to the appropriate font on this call
- SeeAlso: AX=1112h,AX=1120h,AX=1121h,AX=1122h,AX=1124h,AX=1129h
- SeeAlso: INT 1F"SYSTEM DATA",INT 43"VIDEO DATA"
- --------V-101124-----------------------------
- INT 10 - VIDEO - GRAPH-MODE CHARGEN - LOAD 8x16 GRAPHICS CHARS (VGA,MCGA)
- AX = 1124h
- BL = row specifier (see AX=1121h)
- Return: nothing
- Notes: this function is meant to be called immediately after a mode set;
- results are unpredictable at other times
- UltraVision v2+ sets INT 43 to the appropriate font on this call
- SeeAlso: AX=1120h,AX=1121h,AX=1122h,AX=1123h,AX=1129h
- SeeAlso: INT 1F"SYSTEM DATA",INT 43"VIDEO DATA"
- --------V-101129-----------------------------
- INT 10 - VIDEO - GRAPH-MODE CHARGEN - LOAD 8x16 GRAPH CHARS (Compaq Systempro)
- AX = 1129h
- BL = row specifier (see AX=1121h)
- Return: nothing
- Notes: this function is meant to be called immediately after a mode set;
- results are unpredictable at other times
- UltraVision v2+ sets INT 43 to the appropriate font on this call
- SeeAlso: AX=1120h,AX=1121h,AX=1122h,AX=1123h,AX=1124h,INT 1F"SYSTEM DATA"
- SeeAlso: INT 43"VIDEO DATA"
- --------V-101129-----------------------------
- INT 10 - VIDEO - GRAPH-MODE CHARGEN - SET USER GRAPHICS CHARACTERS (Diamond)
- AX = 1129h
- DI:BP -> user table
- CX = bytes per character
- BL = row specifier
- 00h user set
- DL = number of rows
- 01h 14 rows
- 02h 25 rows
- 03h 43 rows
- Return: AL = new number of rows
- Notes: this function is meant to be called immediately after a mode set;
- results are unpredictable at other times
- supported by Diamond Stealth64 Video
- SeeAlso: AX=1120h,AX=1122h,AX=1123h,AX=1124h,INT 1F"SYSTEM",INT 43"VIDEO"
- --------V-101130-----------------------------
- INT 10 - VIDEO - GET FONT INFORMATION (EGA, MCGA, VGA)
- AX = 1130h
- BH = pointer specifier
- 00h INT 1Fh pointer
- 01h INT 43h pointer
- 02h ROM 8x14 character font pointer
- 03h ROM 8x8 double dot font pointer
- 04h ROM 8x8 double dot font (high 128 characters)
- 05h ROM alpha alternate (9 by 14) pointer (EGA,VGA)
- 06h ROM 8x16 font (MCGA, VGA)
- 07h ROM alternate 9x16 font (VGA only) (see #0020)
- 11h (UltraVision v2+) 8x20 font (VGA) or 8x19 font (autosync EGA)
- 12h (UltraVision v2+) 8x10 font (VGA) or 8x11 font (autosync EGA)
- Return: ES:BP = specified pointer
- CX = bytes/character of on-screen font (not the requested font!)
- DL = highest character row on screen
- Note: for UltraVision v2+, the 9xN alternate fonts follow the corresponding
- 8xN font at ES:BP+256N
- BUG: the IBM EGA and some other EGA cards return in DL the number of rows on
- screen rather than the highest row number (which is one less).
- SeeAlso: AX=1100h,AX=1103h,AX=1120h,INT 1F"SYSTEM DATA",INT 43"VIDEO DATA"
-
- Format of alternate font table [array]:
- Offset Size Description (Table 0020)
- 00h BYTE character to be replaced (00h = end of table)
- 01h N BYTEs graphics data for character, one byte per scan line
- --------V-101130BX4D4F-----------------------
- INT 10 - M10_SCR.COM v3.5+ - INSTALLATION CHECK
- AX = 1130h
- BX = 4D4Fh
- Return: CX = 4F4Dh if installed
- ES:BP -> M10_SCR INT 10 handler
- Program: M10_SCR is a shareware extended text mode and font driver by
- I.V. Morozov
- SeeAlso: INT 16/AX=4D4Fh
- --------V-1012-------------------------------
- INT 10 - BIOS Window Extension v1.1 - GET BLANKING ATTRIBUTE
- AH = 12h
- Return: BH = attribute to use on blanked lines when scrolling
- Program: BWE is a TSR by John J. Seal published in May 1986 Dr. Dobb's Journal
- SeeAlso: AH=11h"Window",AH=12h"Window"
- --------V-1012-------------------------------
- INT 10 - Tandy 2000 - VIDEO - SCROLL WINDOW
- AH = 12h
- AL = number of rows or columns to scroll
- BH = buffer flag
- 00h data in user buffer
- ES:SI -> buffer containing character/attribute pairs
- 01h no buffer, fill emptied rows/columns with blanks
- BL = direction in which to scroll
- 00h up
- 01h down
- 02h left
- 03h right
- CH,CL = row,column of upper left corner of scroll area
- DH,DL = row,column of lower right corner
- Return: nothing
- Notes: this interrupt is identical to INT 52 on Tandy 2000
- the user buffer, if supplied, must be organized by row; regardless of
- the scroll direction, all character/attribute pairs for the first
- row are first, then the pairs for the second row, etc.
- SeeAlso: AH=00h,AH=0Bh/BH=02h,AH=11h"Tandy 2000",AH=12h"Tandy 2000"
- SeeAlso: INT 52"Tandy"
- --------V-1012--BL10-------------------------
- INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (PS, EGA, VGA, MCGA) - GET EGA INFO
- AH = 12h
- BL = 10h
- Return: BH = video state
- 00h color mode in effect (I/O port 3Dxh)
- 01h mono mode in effect (I/O port 3Bxh)
- BL = installed memory (00h = 64K, 01h = 128K, 02h = 192K, 03h = 256K)
- CH = feature connector bits (see #0021)
- CL = switch settings (see #0022,#0023)
- AH destroyed (at least by Tseng ET4000 BIOS v8.00n)
- Note: one possible check for the presence of an EGA or later display card
- is to call this function with BH=FFh; if not present, BH will be
- unchanged on return
- another installation check is used by Athena Digital's HGCIBM, which
- sets CX to FFFFh on calling and checks whether it has been changed
- on return
- Index: installation check;EGA
-
- Bitfields for feature connector bits:
- Bit(s) Description (Table 0021)
- 0 FEAT 1 line, state 2
- 1 FEAT 0 line, state 2
- 2 FEAT 1 line, state 1
- 3 FEAT 0 line, state 1
- 4-7 unused (0)
-
- Bitfields for switch settings:
- Bit(s) Description (Table 0022)
- 0 switch 1 OFF
- 1 switch 2 OFF
- 2 switch 3 OFF
- 3 switch 4 OFF
- 4-7 unused
-
- (Table 0023)
- Values for switch settings on original EGA/VGA:
- 00h primary MDA/HGC, secondary EGA+ 40x25
- 01h-03h primary MDA/HGC, secondary EGA+ 80x25
- 04h primary CGA 40x25, secondary EGA+ 80x25 mono
- 05h primary CGA 80x25, secondary EGA+ 80x25 mono
- 06h primary EGA+ 40x25, secondary MDA/HGC (optional)
- 07h-09h primary EGA+ 80x25, secondary MDA/HGC (optional)
- 0Ah primary EGA+ 80x25 mono,secondary CGA 40x25 (optional)
- 0Bh primary EGA+ 80x25 mono,secondary CGA 80x25 (optional)
- --------V-1012--BL11-------------------------
- INT 10 - VIDEO - Trident TVGA 8800/8900/9000 BIOS - GET BIOS INFO
- AH = 12h
- BL = 11h
- Return: AL = 12h if function supported
- BL = ??? (10h)
- ES:BP -> BIOS info structure (see #0024)
- SeeAlso: AH=12h/BL=12h"TRIDENT"
-
- Format of Trident BIOS Info structure:
- Offset Size Description (Table 0024)
- 00h BYTE ??? (0000h)
- 01h BYTE OEM Code (00h for original Trident)
- 02h WORD ID??? (1073h for 8800BR, 1074 for 8800CS)
- 04h 8 BYTEs BIOS date ('mm/dd/yy')
- 0Ch WORD ???
- 0Eh 8 BYTEs BIOS Version (' C3-128 ', ' C3-129 ')
- --------V-1012--BL12-------------------------
- INT 10 - VIDEO - Trident TVGA 8800/8900/9000 BIOS - GET VIDEO RAM SIZE
- AH = 12h
- BL = 12h
- Return: AL = 12h if function supported
- AH = number of 256K banks of RAM installed
- (read from CRTC register 1Fh)
- SeeAlso: AH=12h/BL=11h"TRIDENT"
- --------V-1012--BL20-------------------------
- INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (PS,EGA,VGA,MCGA) - ALTERNATE PRTSC
- AH = 12h
- BL = 20h select alternate print screen routine
- Return: nothing
- Desc: installs a PrtSc routine from the video card's BIOS to replace the
- default PrtSc handler from the ROM BIOS, which usually does not
- understand screen heights other than 25 lines
- Note: some adapters disable print-screen instead of enhancing it
- SeeAlso: INT 05"PRINT SCREEN"
- --------V-1012--BL2E-------------------------
- INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
- AH = 12h
- BL = 2Eh
- Return: nothing
- Note: due to an omitted end-of-list marker, these versions of the BIOS will
- crash the system on this function
- --------V-1012--BL30-------------------------
- INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA) - SELECT VERTICAL RESOLUTION
- AH = 12h
- BL = 30h
- AL = vertical resolution
- 00h 200 scan lines
- 01h 350 scan lines
- 02h 400 scan lines
- Return: AL = 12h if function supported
- Desc: specify the number of scan lines used to display text modes
- Note: the specified resolution will take effect on the next mode set
- SeeAlso: AH=00h
- --------V-1012--BL31-------------------------
- INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA, MCGA) - PALETTE LOADING
- AH = 12h
- BL = 31h
- AL = new state
- 00h enable default palette loading
- 01h disable default palette loading
- Return: AL = 12h if function supported
- Desc: specify whether a default palette should be loaded when the display
- mode is set
- SeeAlso: AH=00h
- --------V-1012--BL32-------------------------
- INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA, MCGA) - VIDEO ADDRESSING
- AH = 12h
- BL = 32h
- AL = new state
- 00h enable video addressing
- 01h disable video addressing
- Return: AL = 12h if function supported
- Desc: specify whether the CPU should have access to video memory and the
- display adapters I/O registers
- --------V-1012--BL33-------------------------
- INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA, MCGA) - GRAY-SCALE SUMMING
- AH = 12h
- BL = 33h
- AL = new state
- 00h enable gray scale summing
- 01h disable gray scale summing
- Return: AL = 12h if function supported
- Desc: specify whether or not colors should be converted to gray scale when
- palette or color registers are loaded
- SeeAlso: AX=101Bh,AX=BF06h,AX=BF08h
- --------V-1012--BL34-------------------------
- INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA) - CURSOR EMULATION
- AH = 12h
- BL = 34h
- AL = new state
- 00h enable alphanumeric cursor emulation
- 01h disable alphanumeric cursor emulation
- Return: AL = 12h if function supported
- Desc: specify whether the BIOS should automatically remap cursor start/end
- according to the current character height in text modes
- SeeAlso: AH=01h,AH=03h
- --------V-1012--BL35-------------------------
- INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (PS) - DISPLAY-SWITCH INTERFACE
- AH = 12h
- BL = 35h
- AL = subfunction
- 00h initial adapter video off
- 01h initial planar video on
- 02h switch active video off
- 03h switch inactive video on
- 80h *UNDOCUMENTED* set system board video active flag
- ES:DX -> buffer for 128 byte save area (if AL = 00h-03h)
- Return: AL = 12h if function supported
- Desc: switch between two video adapters which may otherwise have address
- conflicts
- SeeAlso: AX=BF00h,AX=BF01h,INT 6D"VGA"
- --------V-1012--BL36-------------------------
- INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (PS, VGA) - VIDEO REFRESH CONTROL
- AH = 12h
- BL = 36h
- AL = new state
- 00h enable refresh
- 01h disable refresh
- Return: AL = 12h if function supported
- Desc: specify whether the contents of video memory should be displayed on
- the screen; disabling refresh effectively blanks the screen
- Note: when display refresh is disabled, the entire screen displays the color
- specified by the DAC color register 00h; thus to actually blank the
- screen, the application must first ensure that that register has been
- set to black
- BUG: GEM/VIEWMAX ET3000 and ET4000 drivers dated 6/23/88 do not correctly
- reenable refresh after the screen has been blanked due to inactivity,
- resulting in a total loss of video synchronization
- SeeAlso: AX=BF05h
- --------V-1012--BL37-------------------------
- INT 10 - VIDEO - XGA - MAINFRAME INTERACTIVE SUPPORT
- AH = 12h
- BL = 37h
- AL = text attribute type (00h normal VGA, 01h mainframe type)
- Return: AL = 12h if supported
- SeeAlso: #0025,AH=08h,#0040
-
- Bitfields for XGA mainframe type character attributes:
- Bit(s) Description (Table 0025)
- 7 blink double rate (75% ON time) or use color 8 as background
- (see AX=1003h)
- 6 reverse video
- 5 underlined
- 4 left-most and right-most dots of underline area inverted
- 3 foreground intensity/character font select
- 2-0 foreground color
- SeeAlso: #0013,#0034
- --------V-1012--BL38-------------------------
- INT 10 - IBM SurePath BIOS - Officially "Private" Function
- AH = 12h
- BL = 38h
- SeeAlso: AX=1118h,AH=12h/BL=39h
- --------V-1012--BL39-------------------------
- INT 10 - IBM SurePath BIOS - Officially "Private" Function
- AH = 12h
- BL = 39h
- SeeAlso: AX=1118h,AH=12h/BL=38h,AH=12h/BL=3Ah
- --------V-1012--BL3A-------------------------
- INT 10 - IBM SurePath BIOS - Officially "Private" Function
- AH = 12h
- BL = 3Ah
- SeeAlso: AX=1118h,AH=12h/BL=39h
- --------V-1012--BL53-------------------------
- INT 10 - Tseng ET-4000 BIOS v8.00 (06/07/91) - BUG
- AH = 12h
- BL = 53h
- Note: due to an omitted end-of-list marker, this version of the BIOS will
- crash the system on this function
- --------V-1012--BL57-------------------------
- INT 10 - Tseng ET-4000 BIOS v8.00 (06/07/91) - BUG
- AH = 12h
- BL = 57h
- Note: due to an omitted end-of-list marker, this version of the BIOS will
- crash the system on this function
- --------V-1012--BH55-------------------------
- INT 10 - VIDEO - ALTERNATE FUNC SELECT (ATI,Tatung,Taxan) - ENHANCED FEATURES
- AH = 12h
- BH = 55h
- BL = subfunction
- 00h disable enhanced features
- 01h enable enhanced features
- 02h get status
- Return: AL = status flags (see #0026)
- 03h disable register trapping (CGA emulation)
- 04h enable register trapping
- 05h program video mode
- ES:BP -> video mode table (see #0027)
- 06h get mode table
- AL = video mode
- Return: ES:BP -> table suitable for mode AL
- (and subfunc BL=05h) (see #0027)
- BP = FFFFh on error
- SI = 0000h (ATI Mach32)
- Note: the ATI Mouse driver (MOUSE.COM/MOUSE.SYS) uses subfunction 06h to get
- the mode table for mode 03h, and then looks for a signature string
- beginning within 32 bytes of the offset specified by the word at
- ES:000Ch
- SeeAlso: AH=FFh"Oak"
- Index: installation check;ATI video adapters
-
- Bitfields for status flags:
- Bit(s) Description (Table 0026)
- 3 set if enhanced features enabled
- 7-5 monitor type
- 000 PS/2 mono
- 001 PS/2 color
- 010 multi-sync
- 011 Taxan 650 25kHz
- 100 RGB
- 101 mono
- 110 EGA
- 111 Compaq internal
-
- Format of ATI VGA Wonder video mode table:
- Offset Size Description (Table 0027)
- 00h BYTE number of columns
- 01h BYTE maximum row (number of rows - 1)
- 02h BYTE scan lines per row
- 03h WORD video buffer size in bytes
- 05h 4 BYTEs values for Sequencer registers 1-4
- 09h BYTE value for Miscellaneous Output register
- 0Ah 25 BYTEs values for CRTC registers 00h-18h
- 00h horizontal total size (chars)
- 01h horizontal displayed (chars)
- 02h horizontal sync position (chars)
- 03h horizontal sync width (chars)
- 04h vertical total size (char rows)
- 05h vertical total adjust (scan lines)
- 06h vertical displayed (char rows)
- 07h vertical sync position (char rows)
- 08h interlace mode
- 09h max scan line in row
- 0Ah cursor start scan line
- 0Bh cursor end scan line
- 0Ch screen memory start (high)
- 0Dh screen memory start (low)
- 0Eh cursor address (high)
- 0Fh cursor address (low)
- 10h light pen (high)
- 11h light pen (low)
- 23h 20 BYTEs default palette (values for Attribute Controller regs 00h-13h)
- 37h 9 BYTEs values for Graphics Controller registers 00h-08h
- --------V-1012--BL74-------------------------
- INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
- AH = 12h
- BL = 74h
- Note: due to an omitted end-of-list marker, these versions of the BIOS will
- crash the system on this function
- --------V-1012--BL80-------------------------
- INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
- AH = 12h
- BL = 80h
- Note: due to an omitted end-of-list marker, these versions of the BIOS will
- crash the system on this function
- --------V-1012--BL80-------------------------
- INT 10 - Cirrus Logic BIOS - INQUIRE VGA TYPE
- AH = 12h
- BL = 80h
- Return: AX = controller type in bits 13-0 (see #0028)
- bit 14: ???
- bit 15: ???
- BL = silicon revision number (bit 7 set if not available)
- SeeAlso: AH=12h/BL=81h,AH=12h/BL=82h,AH=12h/BL=85h,AH=12h/BL=9Ah,AH=12h/BL=A1h
-
- (Table 0028)
- Values for Cirrus Logic video controller type:
- 0000h no extended alternate select support
- 0002h 510/520
- 0003h 610/620
- 0004h 5320
- 0005h 6410
- 0006h 5410
- 0007h 6420
- 0008h 6412
- 0010h 5401
- 0011h 5402
- 0012h 5420
- 0013h 5422
- 0014h 5424
- 0015h 5426
- 0016h 5420r1
- 0017h 5402r1
- 0018h 5428
- 0020h 6205/15/25
- 0030h 5432
- 0031h 5434
- SeeAlso: #0656,#0666
- --------V-1012--BL81-------------------------
- INT 10 - Cirrus Logic BIOS - GET BIOS VERSION NUMBER
- AH = 12h
- BL = 81h
- Return: AH = BIOS major version
- AL = BIOS minor version
- SeeAlso: AH=12h/BL=80h,AH=12h/BL=82h
- --------V-1012--BL82-------------------------
- INT 10 - Cirrus Logic BIOS - GET DESIGN REVISION CODE
- AH = 12h
- BL = 82h
- Return: AL = chip revision
- AH = ??? (AFh for v1.01)
- SeeAlso: AH=12h/BL=80h,AH=12h/BL=81h,#0656 at INT 1A/AX=B102h
- --------V-1012--BL84-------------------------
- INT 10 - Cirrus Logic BIOS v3.02 - INQUIRE OPTIONS
- AH = 12h
- BL = 84h
- Return: AX = user options word (see #0029)
- SeeAlso: AH=12h/BL=89h,AH=12h/BL=8Ah,AH=12h/BL=8Bh,AH=12h/BL=8Ch,AH=12h/BL=8Fh
- SeeAlso: AH=12h/BL=90h,AH=12h/BL=9Ah
-
- Bitfields for Cirrus Logic user options word:
- Bit(s) Description (Table 0029)
- 1,0 centering
- 00 vertical centered, 01 from bottom, 10 from top, 11 reserved
- 3,2 720-dot fix-up options
- 00 OR every 8th and 9th pixel
- 01 display MGA mode from left
- 10 display MGA mode from right
- 11 skip every 9th pixel
- 4 ???
- 7-5 video mode (001 CGA, 010 MGA, 011 EGA, 100 VGA)
- 8 external monitor enabled instead of LCD panel
- 9 vertical expand mode enabled
- 10 8-bit mode instead of 16-bit mode
- 11 normal video rather than reverse video (for LCD)
- 12 attribute automap rather than attribute emulation
- 13 bold mode disabled (default)
- 14 fast bandwidth
- 15 ???
- --------V-1012--BL85-------------------------
- INT 10 - Cirrus Logic BIOS - GET INSTALLED MEMORY
- AH = 12h
- BL = 85h
- Return: AL = number of 64K banks of video memory
- SeeAlso: AH=12h/BL=80h,AH=12h/BL=93h
- --------V-1012--BL89-------------------------
- INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - EN/DISABLE REVERSE VIDEO MODE
- AH = 12h
- BL = 89h
- AL = new state (00h enabled, 01h disabled)
- Return: nothing
- SeeAlso: AH=12h/BL=84h,AH=12h/BL=8Ah,AH=12h/BL=8Bh
- --------V-1012--BL8A-------------------------
- INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - SET FRAME COLOR
- AH = 12h
- BL = 8Ah
- AL = new gray-scale color (00h = black to 0Fh = white)
- Return: nothing
- SeeAlso: AH=12h/BL=84h,AH=12h/BL=89h,AH=12h/BL=8Fh
- --------V-1012--BL8B-------------------------
- INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - ENABLE/DISABLE BOLD MODE
- AH = 12h
- BL = 8Bh
- AL = new state (00h enabled, 01h disabled)
- Return: nothing
- SeeAlso: AH=12h/BL=84h,AH=12h/BL=89h,AH=12h/BL=8Ch,AH=12h/BL=8Fh
- --------V-1012--BL8C-------------------------
- INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - SET AUTOMAP/EMULATE ATTRIBUTES
- AH = 12h
- BL = 8Ch
- AL = new state
- 00h enable automap
- 01h disable automap and emulate attributes
- Return: nothing
- SeeAlso: AH=12h/BL=84h,AH=12h/BL=8Bh
- --------V-1012--BL8F-------------------------
- INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - ENABLE/DISABLE EXPAND MODE
- AH = 12h
- BL = 8Fh
- AL = new state (00h enabled, 01h disabled)
- Return: nothing
- Note: when expand mode is enabled, the vertical dimension is enlarged to
- full screen
- SeeAlso: AH=12h/BL=84h,AH=12h/BL=89h,AH=12h/BL=8Bh,AH=12h/BL=90h
- --------V-1012--BL90-------------------------
- INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - SET CENTERING MODE
- AH = 12h
- BL = 90h
- AL = new position
- 00h centered
- 01h from top
- 02h from bottom
- 03h from top
- Return: nothing
- SeeAlso: AH=12h/BL=84h,AH=12h/BL=8Fh
- --------V-1012--BL91-------------------------
- INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - SET 720-DOT FIXUP MODE
- AH = 12h
- BL = 91h
- AL = new mode
- 00h display MGA mode from left of screen (default)
- 01h display MGA from right
- 02h skip every ninth pixel
- 03h OR every 8th and 9th pixel
- Return: nothing
- SeeAlso: AH=12h/BL=84h,AH=12h/BL=8Ah,AH=12h/BL=90h
- --------V-1012--BL92-------------------------
- INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - SWITCH DISPLAY
- AH = 12h
- BL = 92h
- AL = new display (00h LCD, 01h external monitor)
- Return: nothing
- Note: the deselected display is disabled
- SeeAlso: AH=12h/BL=84h,AH=12h/BL=89h,AH=12h/BL=90h,AH=12h/BL=94h
- --------V-1012--BL93-------------------------
- INT 10 - Cirrus Logic BIOS - FORCE 8-BIT OR 16-BIT OPERATION
- AH = 12h
- BL = 93h
- AL = new I/O width (00h = 16 bits, 01h = 8 bits)
- Return: nothing
- SeeAlso: AH=12h/BL=9Ah
- --------V-1012--BL94-------------------------
- INT 10 - Cirrus Logic BIOS v3.02 - POWER CONSERVATION
- AH = 12h
- BL = 94h
- AL = new state (00h wake up monitor, 01h shut down display)
- Return: nothing
- Note: AL=01h is reported not to work properly on the LCD panel
- SeeAlso: AH=12h/BL=84h,AH=12h/BL=92h
- --------V-1012--BL9A-------------------------
- INT 10 - Cirrus Logic BIOS - GET USER OPTIONS
- AH = 12h
- BL = 9Ah
- Return: AX = options word 1 (see #0030)
- CX = options word 2 (see #0031)
- SeeAlso: AH=12h/BL=80h,AH=12h/BL=84h,AH=12h/BL=93h,AH=12h/BL=A0h
- SeeAlso: AH=12h/BL=A3h,AH=12h/BL=A4h,#0656 at INT 1A/AX=B102h
-
- Bitfields for Cirrus Logic options word 1:
- Bit(s) Description (Table 0030)
- 0,1 reserved
- 2-4 monitor type
- 5-6 maximum vertical resolution
- 7-9 reserved
- 10 force 8-bit operation
- 11-13 reserved
- 14 vertical refresh frequency at 640x480
- 15 reserved
-
- Bitfields for Cirrus Logic options word 2:
- Bit(s) Description (Table 0031)
- 0-3 reserved
- 4-5 vertical refresh frequency at 1280x1024
- 6-10 reserved
- 11-12 vertical refresh frequency at 800x600
- 13-15 vertical refresh frequency at 1024x768
- --------V-1012--BLA0-------------------------
- INT 10 - Cirrus Logic BIOS - GET VIDEO MODE AVAILABILITY
- AH = 12h
- BL = A0h
- AL = video mode number (00h-7Fh)
- Return: AH bit 0: video mode supported
- BX = offset of BIOS subroutine to fixup standard video parameters
- (call subroutine with DS:SI and ES:DI as returned by this call)
- DS:SI -> standard video parameters or FFFFh:FFFFh
- ES:DI -> supplemental video parameters or FFFFh:FFFFh
- SeeAlso: AH=00h,AH=12h/BL=9Ah,AH=12h/BL=A1h
- --------V-1012--BLA1-------------------------
- INT 10 - Cirrus Logic BIOS - READ MONITOR TYPE AND ID FROM 15-PIN CONNECTOR
- AH = 12h
- BL = A1h
- Return: BH = monitor ID (see #0032)
- BL = monitor type (00h color, 01h grayscale, 02h no display)
- SeeAlso: AH=12h/BL=9Ah,AH=12h/BL=A2h
-
- (Table 0032)
- Values for Cirrus Logic monitor ID:
- 00h-08h reserved
- 09h IBM 8604/8507 or equivalent
- 0Ah IBM 8514 or equivalent
- 0Bh IBM 8515 or equivalent
- 0Dh IBM 8503 or equivalent
- 0Eh IBM 8512/8513 or equivalent
- 0Fh no monitor
- --------V-1012--BLA2-------------------------
- INT 10 - Cirrus Logic BIOS - SET MONITOR HORIZONTAL RETRACE FREQUENCY
- AH = 12h
- BL = A2h
- AL = retrace rate
- 00h standard VGA (31.5 kHz)
- 01h 8514-compatible (31.5 kHz and 35.5 kHz interlaced)
- 02h SuperVGA (31.5-35.1 kHz)
- 03h extended SuperVGA (31.5-35.5 kHz)
- 04h multi-frequency (31.5-37.8 kHz)
- 05h extended multi-frequency (31.5-48.0 kHz)
- 06h super multi-frequency (31.5-56.0 kHz)
- 07h extended super multi-frequency (31.5-64.0 kHz)
- Return: nothing
- SeeAlso: AH=12h/BL=9Ah,AH=12h/BL=A0h,AH=12h/BL=A4h
- --------V-1012--BLA3-------------------------
- INT 10 - Cirrus Logic BIOS - SET VGA REFRESH
- AH = 12h
- BL = A3h
- AL = refresh rate for 640x480 (00h normal, 01h high)
- Return: nothing
- SeeAlso: AH=12h/BL=9Ah,AH=12h/BL=A4h
- --------V-1012--BLA4-------------------------
- INT 10 - Cirrus Logic BIOS - SET MONITOR TYPE
- AH = 12h
- BL = A4h
- AL bits 3-0 = maximum vertical resolution
- (0 = 480 scanlines, 1 = 600, 2 = 768, 3 = 1024, other reserved)
- AL bits 7-4 = vertical refresh at 640x480
- (0 = 60Hz, 1 = 72Hz, other reserved)
- BH bits 3-0 = vertical refresh at 800x600
- (0 = 56Hz, 1 = 60Hz, 2 = 72Hz, other reserved)
- BH bits 7-4 = vertical refresh at 1024x768
- (0=87Hz-int, 1=60Hz, 2=70Hz, 3=72Hz, 4=76Hz, other reserved)
- CH bits 4-7 = vertical refresh at 1280x1024
- (0=87Hz-int, 1=60Hz, 2=70Hz, other reserved)
- Return: nothing
- SeeAlso: AH=12h/BL=9Ah,AH=12h/BL=A3h
- --------V-1012--BLBE-------------------------
- INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
- AH = 12h
- BL = BEh
- Note: due to an omitted end-of-list marker, these versions of the BIOS will
- crash the system on this function
- --------V-1012--BLC6-------------------------
- INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
- AH = 12h
- BL = C6h
- Note: due to an omitted end-of-list marker, these versions of the BIOS will
- crash the system on this function
- --------V-1012--BLF0-------------------------
- INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
- AH = 12h
- BL = F0h
- Note: due to an omitted end-of-list marker, these versions of the BIOS will
- crash the system on this function
- --------V-1012--BLF1--------------------------
- INT 10 - Tseng ET-4000 BIOS - GET/SET SCREEN REFRESH RATE
- AH = 12h
- BL = F1h
- AL = subfunction
- 00h set refresh rate
- 01h get refresh rate
- BH = video mode
- 00h 640x480
- 01h 800x600
- 02h 1024x768
- 03h 1280x1024
- CX = new refresh rate (see #0033) if AL = 00h
- Return: AL = 12h if supported
- CX = current rate (for AL=00h, a changed CX indicates failure)
-
- (Table 0033)
- Values for Tseng ET4000 refresh rate:
- CX 640x480 800x600 1024x768/1280x1024
- 00h 60 Hz 56 Hz interlaced
- 01h 72 Hz 60 Hz 60 Hz
- 02h 75 Hz 72 Hz 70 Hz
- 03h 90 Hz 75 Hz 75 Hz
- 04h -- 90 Hz --
- --------V-1013-------------------------------
- INT 10 - VIDEO - WRITE STRING (AT and later,EGA)
- AH = 13h
- AL = write mode
- bit 0: update cursor after writing
- bit 1: string contains alternating characters and attributes
- bits 2-7: reserved (0)
- BH = page number
- BL = attribute if string contains only characters
- CX = number of characters in string
- DH,DL = row,column at which to start writing
- ES:BP -> string to write
- Return: nothing
- Notes: recognizes CR, LF, BS, and bell; for the ET4000 BIOS, scrolling,
- backspace, and CR only take place in the active page
- also available PC or XT with EGA or higher
- HP 95LX only supports write mode 00h
- IBM documents AL=10h,11h,20h,21h as "private" rather than "reserved"
- BUG: on the IBM VGA Adapter, any scrolling which may occur is performed on
- the active page rather than the requested page
- SeeAlso: AH=09h,AH=0Ah,AH=13h"DOS/V"
- --------J-1013-------------------------------
- INT 10 - DOS/V - READ/WRITE DOUBLE-BYTE CHARACTER SET CHARACTERS/ATTRIBUTES
- AH = 13h
- AL = function
- 10h read characters and standard attributes
- 11h read characters and extended attributes
- 12h write characters and standard attributes
- 13h write characters and extended attributes
- BH = 00h
- CX = number of characters to transfer
- DH,DL = row,column at which to start transfer
- ES:BP -> buffer for/containing characters and attributes (see #0034)
- Return: ES:BP buffer filled if reading
- Program: DOS/V is a Japanese-language version of MS-DOS which can run on
- standard (non-Japanese) ATs and compatible equipped with a VGA or
- newer video adapter
- Notes: subfunctions 11h and 13h are only valid when DOS/V is using video
- mode 73h
- the cursor position is not changed by these functions
- extended attributes consist of three bytes; the first is the standard
- character attribute byte, the second is as described below, and the
- third is always zero in current versions
- SeeAlso: AH=00h,AH=13h"VIDEO"
-
- Bitfields for DOS/V second extended attribute byte:
- Bit(s) Description (Table 0034)
- 7 underline using foreground color
- 6 reverse foreground/background specified in standard attribute byte
- 5-4 unused
- 3 vertical white grid line in cell
- 2 horizontal white grid line in cell
- 1-0 unused
- SeeAlso: #0013,#0025
- --------V-101400-----------------------------
- INT 10 - VIDEO - LOAD USER-SPECIFIED LCD CHARACTER FONT (CONV,Compaq Port 386)
- AX = 1400h
- ES:DI -> character font
- BH = number of bytes per character
- 08h or 10h (Compaq)
- BL = 00h load main font (block 0)
- 01h load alternate font (block 1)
- CX = number of characters to store
- DX = character offset into RAM font area
- Return: nothing
- SeeAlso: AX=1100h,AX=1110h,AX=1401h
- --------V-101401-----------------------------
- INT 10 - VIDEO - LOAD SYSTEM ROM DEFAULT LCD CHARACTER FONT (CONV,CP386)
- AX = 1401h
- BL = font to load
- 00h main font (block 0)
- 01h alternate font (block 1)
- Return: nothing
- SeeAlso: AX=1100h,AX=1102h,AX=1400h
- --------V-101402-----------------------------
- INT 10 - VIDEO - SET MAPPING OF LCD HIGH INTENSITY ATTRIBUTES (CONV,CP386)
- AX = 1402h
- BL = subfunction
- 00h ignore high intensity attribute
- 01h map high intensity to reverse video
- 02h map high intensity to underscore
- 03h map high intensity to selected alternate font
- B0h half intensity (Compaq)
- B1h toggle active intensity bit interpretation (CP386)
- Return: nothing
- --------V-1015-------------------------------
- INT 10 - VIDEO - GET PHYSICAL DISPLAY PARAMETERS (CONVERTIBLE)
- AH = 15h
- Return: AX = alternate display adapter type (see #0035)
- ES:DI -> parameter table (see #0036)
- SeeAlso: AH=1Bh
-
- (Table 0035)
- Values for PC Convertible alternate display adapter type:
- 0000h none
- 5140h LCD
- 5153h CGA
- 5151h mono
-
- Format of PC Convertible display parameter table:
- Offset Size Description (Table 0036)
- 00h WORD monitor model number
- 02h WORD vertical pixels per meter
- 04h WORD horizontal pixels per meter
- 06h WORD total vertical pixels
- 08h WORD total horizontal pixels
- 0Ah WORD horizontal pixel separation in micrometers
- (width, center-to-center)
- 0Ch WORD vertical pixel separation in micrometers
- (height, center-to-center)
- --------V-1015-------------------------------
- INT 10 - VIDEO - SET SUPERIMPOSE MODE (Sperry PC)
- AH = 15h
- AL = superimpose mode
- 00h show graphics screen
- 01h show text screen
- 02h show text screen superimposed on graphics screen
- Return: nothing
- --------J-1018-------------------------------
- INT 10 - VIDEO - DOS/V - GET/SET FONT PATTERN
- AH = 18h
- AL = subfunction
- 00h get font pattern
- 01h set font pattern
- BX = 0000h
- CL = character size in bytes (01h,02h)
- CH = 00h
- DH = character width in pixels
- DL = character height in pixels
- ES:DI -> buffer for/containing font image
- Return: AL = status (00h successful, else error)
- ES:DI buffer filled for function 00h if successful
- Note: the supported font sizes are 8x16 single-byte, 8x19 single-byte,
- 16x16 double-byte, and 24x24 double-byte
- SeeAlso: AH=19h,INT 16/AH=14h
- --------V-1019-------------------------------
- INT 10 - Japanese VIDEO - DOUBLE-BYTE CHARACTER SET SHIFT INFORMATION
- AH = 19h
- ???
- Return: ???
- SeeAlso: AH=18h,INT 16/AH=14h
- --------V-101A00-----------------------------
- INT 10 - VIDEO - GET DISPLAY COMBINATION CODE (PS,VGA/MCGA)
- AX = 1A00h
- Return: AL = 1Ah if function was supported
- BL = active display code (see #0037)
- BH = alternate display code (see #0037)
- Notes: this function is commonly used to check for the presence of a VGA
- this function is supported on the ATI EGA Wonder with certain
- undocumented configuration switch settings, even though the EGA
- Wonder does not support VGA graphics; to distinguish this case,
- call AX=1C00h with CX nonzero, which the EGA Wonder does not support
- SeeAlso: AH=12h/BL=35h,AX=1A01h,AH=1Bh,AH=1Ch,MEM 0040h:008Ah
- Index: installation check;VGA
-
- (Table 0037)
- Values for display combination code:
- 00h no display
- 01h monochrome adapter w/ monochrome display
- 02h CGA w/ color display
- 03h reserved
- 04h EGA w/ color display
- 05h EGA w/ monochrome display
- 06h PGA w/ color display
- 07h VGA w/ monochrome analog display
- 08h VGA w/ color analog display
- 09h reserved
- 0Ah MCGA w/ digital color display
- 0Bh MCGA w/ monochrome analog display
- 0Ch MCGA w/ color analog display
- FFh unknown display type
- --------V-101A01-----------------------------
- INT 10 - VIDEO - SET DISPLAY COMBINATION CODE (PS,VGA/MCGA)
- AX = 1A01h
- BL = active display code (see #0037)
- BH = alternate display code
- Return: AL = 1Ah if function was supported
- SeeAlso: AH=12h/BL=35h,AX=1A00h
- --------V-101B-------------------------------
- INT 10 - VIDEO - FUNCTIONALITY/STATE INFORMATION (PS,VGA/MCGA)
- AH = 1Bh
- BX = implementation type
- 0000h return funtionality/state information
- ES:DI -> 64-byte buffer for state information (see #0038)
- Return: AL = 1Bh if function supported
- ES:DI buffer filled with state information
- BUG: Trident 8900 (BIOS D3.0 11/12/91) and Trident 9000 (C3.0 10/25/91)
- do not correctly set the fields at offsets 27h and 29h of the
- state information
- SeeAlso: AH=15h,AX=1A00h,AX=1F01h
-
- Format of MCGA+ state information:
- Offset Size Description (Table 0038)
- 00h DWORD address of static funtionality table (see #0043)
- 04h BYTE video mode in effect
- 05h WORD number of columns
- 07h WORD length of regen buffer in bytes
- 09h WORD starting address of regen buffer
- 0Bh WORD cursor position for page 0
- 0Dh WORD cursor position for page 1
- 0Fh WORD cursor position for page 2
- 11h WORD cursor position for page 3
- 13h WORD cursor position for page 4
- 15h WORD cursor position for page 5
- 17h WORD cursor position for page 6
- 19h WORD cursor position for page 7
- 1Bh WORD cursor "type" (start/stop scan lines)
- 1Dh BYTE active display page
- 1Eh WORD CRTC port address
- 20h BYTE current setting of PORT 03x8h
- 21h BYTE current setting of PORT 03x9h
- 22h BYTE number of rows - 1
- 23h WORD bytes/character
- 25h BYTE display combination code of active display
- 26h BYTE DCC of alternate display
- 27h WORD number of colors supported in current mode (0000h = mono)
- 29h BYTE number of pages supported in current mode
- 2Ah BYTE number of scan lines active
- (0,1,2,3) = (200,350,400,480)
- Tseng ET3000: (4,5,6 = 512,600,768)
- 2Bh BYTE primary character block
- 2Ch BYTE secondary character block
- 2Dh BYTE miscellaneous flags (see #0039)
- 2Eh BYTE non-VGA mode support (see #0040)
- 2Fh 2 BYTEs reserved (00h)
- 31h BYTE video memory available
- 00h = 64K, 01h = 128K, 02h = 192K, 03h = 256K
- 32h BYTE save pointer state flags (see #0041)
- 33h BYTE display information and status (see #0042)
- 34h 12 BYTEs reserved (00h)
-
- Bitfields for miscellaneous flags:
- Bit(s) Description (Table 0039)
- 0 all modes on all displays on
- 1 gray summing on
- 2 monochrome display attached
- 3 default palette loading disabled
- 4 cursor emulation enabled
- 5 0 = intensity; 1 = blinking
- 6 flat-panel display is active
- 7 unused (0)
- SeeAlso: #0038
-
- Bitfields for non-VGA mode support:
- Bit(s) Description (Table 0040)
- 7-5 reserved
- 4 132-column mode supported
- 3 =1 MFI attributes enabled (see AH=12h/BL=37h)
- =0 VGA attributes
- 2 16-bit VGA graphics present
- 1 adapter interface driver required
- 0 BIOS supports information return for adapter interface
- SeeAlso: #0038
-
- Bitfields for save pointer state flags:
- Bit(s) Description (Table 0041)
- 0 512 character set active
- 1 dynamic save area present
- 2 alpha font override active
- 3 graphics font override active
- 4 palette override active
- 5 DCC override active
- 6-7 unused (0)
- SeeAlso: #0038
-
- Bitfields for display information and status:
- Bit(s) Description (Table 0042)
- 7 640x480 flat-panel can be used simultaneously with CRT controller
- 6-3 reserved
- 2 color display
- 1 flat-panel display active
- 0 flat-panel display attached
- SeeAlso: #0038
-
- Format of Static Functionality Table:
- Offset Size Description (Table 0043)
- 00h BYTE modes supported 1
- bit 0 to bit 7 = 1 modes 0,1,2,3,4,5,6,7 supported
- 01h BYTE modes supported 2
- bit 0 to bit 7 = 1 modes 8,9,0Ah,0Bh,0Ch,0Dh,0Eh,0Fh supported
- 02h BYTE modes supported 3
- bit 0 to bit 3 = 1 modes 10h,11h,12h,13h supported
- bit 4 to bit 7 unused (0)
- 03h BYTE (IBM) reserved
- (Tseng ET3000/4000) modes supported 4
- bit 0 to bit 7 = modes 18h-1Fh supported
- 04h BYTE (IBM) reserved
- (Tseng ET3000/4000) modes supported 5
- bit 0 to bit 7 = modes 20h-27h supported
- 05h BYTE (IBM) reserved
- (Tseng ET3000/4000) modes supported 6
- bit 0 to bit 7 = modes 28h-2Fh supported
- 06h BYTE (IBM) reserved
- (Tseng ET3000/4000) modes supported 7
- bit 0 to bit 7 = modes 30h-37h supported
- 07h BYTE scan lines supported
- bit 0 to bit 2 = 1 if scan lines 200,350,400 supported
- bits 3-7 = unused (0)
- 08h BYTE total number of character blocks available in text modes
- 09h BYTE maximum number of active character blocks in text modes
- 0Ah WORD miscellaneous function support flags (see #0044)
- 0Ch WORD reserved
- 0Eh BYTE save pointer function flags (see #0045)
- 0Fh BYTE reserved
- SeeAlso: #0038
-
- Bitfields for miscellaneous function support flags:
- Bit(s) Description (Table 0044)
- 0 all modes on all displays function supported
- 1 gray summing function supported
- 2 character font loading function supported
- 3 default palette loading enable/disable supported
- 4 cursor emulation function supported
- 5 EGA palette present
- 6 color palette present
- 7 color-register paging function supported
- 8 light pen supported (see AH=04h)
- 9 save/restore state function 1Ch supported
- 10 intensity/blinking function supported (see AX=1003h)
- 11 Display Combination Code supported (see #0037)
- 12-15 unused (0)
- SeeAlso: #0038
-
- Bitfields for save pointer function flags:
- Bit(s) Description (Table 0045)
- 0 512 character set supported
- 1 dynamic save area supported
- 2 alpha font override supported
- 3 graphics font override supported
- 4 palette override supported
- 5 DCC extension supported
- 6-7 unused (0)
- SeeAlso: #0038
- --------V-101C-------------------------------
- INT 10 - VIDEO - SAVE/RESTORE VIDEO STATE (PS50+,VGA)
- AH = 1Ch
- AL = function
- 00h return state buffer size
- Return: BX = number of 64-byte blocks needed
- 01h save video state
- ES:BX -> buffer
- 02h restore video state
- ES:BX -> buffer containing previously saved state
- CX = requested states (see #0046)
- Return: AL = 1Ch if function supported
- Notes: many BIOSes corrupt the video registers when saving the state, so a
- program should restore the state immediately after saving it (the
- saved data is uncorrupted)
- the BIOS data area consists of the 96 bytes from 0040h:0049h-00A8h
- this function is not supported when DOS/V is running
- this function may be a better VGA installation check than the usual
- INT 10/AX=1A00h, since some late-model EGA cards (such as the ATI
- EGA Wonder) supported that call
- SeeAlso: AX=1A00h,MEM 0040h:00A8h
-
- Bitfields for requested states:
- Bit(s) Description (Table 0046)
- 0 video hardware (see #0047)
- 1 BIOS data areas
- 2 color registers and DAC state (see #0048)
- 3-15 unused (0)
-
- Format of VGA video hardware state:
- Offset Size Description (Table 0047)
- 00h BYTE sequencer index register
- 01h BYTE CRTC index register
- 02h BYTE graphics controller index register
- 03h BYTE attribute controller index register
- 04h BYTE feature controller register
- 05h 4 BYTEs sequencer registers
- 09h BYTE sequencer register 0
- 0Ah 25 BYTEs CRTC registers 0-8
- 23h 16 BYTEs palette registers 00h-0Fh
- 33h 4 BYTEs attribute registers 10h-13h
- 37h 9 BYTEs graphics controller registers 0-8
- 40h BYTE CRTC base address (low)
- 41h BYTE CRTC base address (high)
- 42h BYTE plane 0 latch
- 43h BYTE plane 1 latch
- 44h BYTE plane 2 latch
- 45h BYTE plane 3 latch
-
- Format of VGA DAC state:
- Offset Size Description (Table 0048)
- 00h BYTE read/write mode DAC
- 01h BYTE pixel address
- 02h BYTE pixel mask
- 03h 768 BYTEs color data (256 triples)
- 303h BYTE color select register
- --------J-101D-------------------------------
- INT 10 - VIDEO - DOS/V - SHIFT STATUS LINE CONTROL
- AH = 1Dh
- AL = function
- 00h enable shift status line(s)
- BX = number of lines to reserve at bottom of screen (usu. 1)
- 01h disable shift status line
- BX = number of lines reserved at bottom of screen (usually 1)
- 02h get number of status lines
- Return: BX = number of lines reserved for shift status
- SeeAlso: AH=19h
- --------V-101D-------------------------------
- INT 10 - SpeedSTAR Plus BIOS v4.23+ - SET SYNC PARAMETERS
- AH = 1Dh
- AL = video mode
- ES = caller's segment
- Return: nothing
- Note: the caller's segment contains at offset 5Ch (FCB field in PSP)
- or 100h a table with sync parameters (see #0049) (BIOS looks at both
- offsets)
-
- Format of SpeedSTAR Plus sync table:
- Offset Size Description (Table 0049)
- 00h 9 BYTEs ID contains string 'ey5CENTER'
- 09h 5 BYTEs sync parameters for 640x480 modes 11h,12h,25h,26h,2Eh
- 0Bh 5 BYTEs sync parameters for 800x600 modes 29h,30h,2Ah
- 13h 5 BYTEs sync parameters for 1024x768 modes 37h,38h
- --------V-101D-------------------------------
- INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
- AH = 1Dh
- Note: these versions of the BIOS jump to a random location on this function
- due to a fencepost error
- --------V-101DAABXFDEC-----------------------
- INT 10 U - Diamond Stealth64 Video - INSTALLATION CHECK
- AX = 1DAAh
- BX = FDECh
- Return: BX = CDEFh if Diamond Stealth64 Video 2001-series video card installed
- AL = number of megabytes of video memory
- AH = ??? (4Bh/5Bh)
- CX = ??? (0000h)
- SI:DI -> signature/copyright string
- --------V-101E00-----------------------------
- INT 10 - VIDEO - FLAT-PANEL - READ INFORMATION
- AX = 1E00h
- Return: AL = 1Eh if function supported
- BL = flat-panel status (see #0050)
- ES:DI -> information table (see #0051)
- Note: IBM classifies this function as optional
- SeeAlso: AX=1E01h,AX=1E02h,AX=1E03h,AX=1E04h,AX=1E05h,AX=1EFEh
-
- Bitfields for flat-panel status:
- Bit(s) Description (Table 0050)
- 7-3 reserved
- 2 color display
- 1 flat panel is active
- 0 flat panel is attached
- SeeAlso: #0051
-
- Format of flat-panel information table:
- Offset Size Description (Table 0051)
- 00h BYTE number of WORDs in the remainder of the table
- 01h WORD number of vertical pixels per meter
- 03h WORD number of horizontal pixels per meter
- 05h WORD total number of vertical pixels
- 07h WORD total number of horizontal pixels
- 09h WORD vertical pixel separation in micrometers (center-to-center)
- 0Bh WORD horizontal pixel separation in micrometers
- 0Dh WORD range of gray levels available, less 1
- 0Fh WORD number of red levels available, less 1 (0000h if nonochrome)
- 11h WORD number of green levels available, less 1 (0000h if nonochrome)
- 13h WORD number of blue levels available, less 1 (0000h if nonochrome)
- SeeAlso: #0050
- --------V-101E01-----------------------------
- INT 10 - VIDEO - FLAT-PANEL - LCD/CRT DISPLAY CONTROL
- AX = 1E01h
- BH = function
- bit 7: =1 set display control, =0 query control
- bits 6-0: reserved (0)
- ---if BH bit 7 set---
- BL = new display combination (see #0052)
- Return: AL = 1Eh if function supported
- BH = results
- bit 7: query/set (copied from input)
- bits 6-3: reserved (0)
- bit 2: simultaneous display is supported by hardware
- bit 1: LCD/CRT display control supported by hardware
- bit 0: set operation was successful (always clear on get)
- BL = active display combination (see #0052)
- SeeAlso: AX=1E00h,AX=1E02h
-
- Bitfields for Flat-Panel display combination:
- Bit(s) Description (Table 0052)
- 7-2 reserved (0)
- 1-0 combination
- 00 reserved
- 01 LCD active
- 10 CRT active
- 11 both LCD and CRT active (simultaneous display)
- SeeAlso: #0053
- --------V-101E02-----------------------------
- INT 10 - VIDEO - FLAT-PANEL - DISPLAY POSITION
- AX = 1E02h
- BH = function
- bit 7: =1 set display position, =0 query position
- bits 6-0: reserved (0)
- ---if BH bit 7 set---
- BL = new position setting (see #0053)
- Return: AL = 1Eh if function supported
- BH = results
- bit 7: query/set (copied from input)
- bits 6-4: reserved (0)
- bit 3: positioning to top is supported by hardware
- bit 2: positioning to center is supported by hardware
- bit 1: positioning to bottom is supported by hardware
- bit 0: set operation was successful (always clear on get)
- BL = active position setting (see #0053)
- SeeAlso: AX=1E00h,AX=1E01h
-
- Bitfields for Flat-Panel position setting:
- Bit(s) Description (Table 0053)
- 7-2 reserved (0)
- 1-0 position
- 00 center
- 01 top
- 10 bottom
- 11 reserved
- SeeAlso: #0052,#0054
- --------V-101E03-----------------------------
- INT 10 - VIDEO - FLAT-PANEL - VERTICAL EXPANSION FOR TEXT/GRAPHICS MODES
- AX = 1E03h
- BH = function
- bit 7: =1 set vertical expansion, =0 query expansion
- bits 6-0: reserved (0)
- ---if BH bit 7 set---
- BL = new vertical expansion setting (see #0054)
- Return: AL = 1Eh if function supported
- BH = results
- bit 7: query/set (copied from input)
- bits 6-4: reserved (0)
- bit 3: vertical expansion of text is supported by hardware
- bit 2: vertical expansion of graphics is supported by hardware
- bit 1: hardware supports independent control of expansion in
- text and graphics modes
- bit 0: set operation was successful (always clear on get)
- BL = active vertical expansion setting (see #0054)
- SeeAlso: AX=1E00h,AX=1E02h.AX=1E04h
-
- Bitfields for Flat-Panel vertical expansion setting:
- Bit(s) Description (Table 0054)
- 7-2 reserved (0)
- 1 vertical expansion turned on for text modes
- 0 vertical expansion turned on for graphics modes
- SeeAlso: #0052,#0053,#0055
- --------V-101E04-----------------------------
- INT 10 - VIDEO - FLAT-PANEL - NORMAL/REVERSE VIDEO FOR TEXT/GRAPHICS MODES
- AX = 1E04h
- BH = function
- bit 7: =1 set normal/reverse video, =0 query normal/reverse
- bits 6-0: reserved (0)
- ---if BH bit 7 set---
- BL = new normal/reverse video setting (see #0055)
- Return: AL = 1Eh if function supported
- BH = results
- bit 7: query/set (copied from input)
- bits 6-4: reserved (0)
- bit 3: hardware supports reverse video for text modes
- bit 2: hardware supports reverse video for graphics modes
- bit 1: hardware supports independent control of reverse video
- in text and graphics modes
- bit 0: set operation was successful (always clear on get)
- BL = active normal/reverse video setting (see #0055)
- SeeAlso: AX=1E00h,AX=1E03h,AX=1E05h
-
- Bitfields for Flat-Panel normal/reverse video setting:
- Bit(s) Description (Table 0055)
- 7-2 reserved (0)
- 1 reverse video for text
- 0 reverse video for graphics
- SeeAlso: #0052,#0054,#0056,#0057
- --------V-101E05-----------------------------
- INT 10 - VIDEO - FLAT-PANEL - BRIGHTNESS CONTROL
- AX = 1E05h
- BH = function
- bit 7: =1 set brightness, =0 query brightness
- bits 6-0: reserved (0)
- ---if BH bit 7 set---
- BL = new brightness setting (see #0056)
- Return: AL = 1Eh if function supported
- BH = results
- bit 7: query/set (copied from input)
- bits 6-2: reserved (0)
- bit 1: software brightness control is supported
- bit 0: set operation was successful (always clear on get)
- BL = active brightness setting (see #0056)
- Note: this function operates independently of AX=1E07h
- SeeAlso: AX=1E00h,AX=1E04h,AX=1E06h,AX=1E07h
-
- Bitfields for Flat-Panel brightness control:
- Bit(s) Description (Table 0056)
- 7-1 reserved (0)
- 0 high brightness
- SeeAlso: #0055,#0057
- --------V-101E06-----------------------------
- INT 10 - VIDEO - FLAT-PANEL - CONTRAST CONTROL FOR TEXT/GRAPHICS
- AX = 1E06h
- BH = function
- bit 7: =1 set contrast control, =0 query contrast
- bits 6-0: reserved (0)
- ---if BH bit 7 set---
- BL = new normal/reverse video setting (see #0057)
- Return: AL = 1Eh if function supported
- BH = results
- bit 7: query/set (copied from input)
- bits 6-4: reserved (0)
- bit 3: software contrast control supported for text
- bit 2: software contrast control supported for graphics
- bit 1: hardware supports independent control of contrast
- in text and graphics modes
- bit 0: set operation was successful (always clear on get)
- BL = active contrast setting (see #0057)
- Note: this function operates independently of AX=1E08h
- SeeAlso: AX=1E00h,AX=1E04h,AX=1E05h,AX=1E07h,AX=1E08h
-
- Bitfields for Flat-Panel contrast control:
- Bit(s) Description (Table 0057)
- 7-2 reserved (0)
- 1 high contrast for text
- 0 high contrast for graphics
- SeeAlso: #0055,#0056
- --------V-101E07-----------------------------
- INT 10 - VIDEO - FLAT-PANEL - BRIGHTNESS SETTING
- AX = 1E07h
- BH = function
- bit 7: =1 set brightness control, =0 query brightness
- bit 6: use standard brightness
- bits 5-0: reserved (0)
- ---if BH bits 7,6=10---
- BL = brightness (00h = minimum, FFh = maximum)
- Return: AL = 1Eh if function supported
- BH = results
- bit 7: query/set (copied from input)
- bit 6: standard/custom (copied from input)
- bits 5-2: reserved (0)
- bit 1: software brightness control is supported
- bit 0: set operation was succesful (always clear on get)
- BL = brightness (00h = minimum, FFh = maximum)
- Note: this function operates independently of AX=1E05h
- SeeAlso: AX=1E00h,AX=1E05h,AX=1E08h
- --------V-101E08-----------------------------
- INT 10 - VIDEO - FLAT-PANEL - CONTRAST SETTING
- AX = 1E08h
- BH = function
- bit 7: =1 set contrast control, =0 query contrast
- bit 6: use standard contrast
- bits 5-0: reserved (0)
- ---if BH bits 7,6=10---
- BL = contrast (00h = minimum, FFh = maximum)
- Return: AL = 1Eh if function supported
- BH = results
- bit 7: query/set (copied from input)
- bit 6: standard/custom (copied from input)
- bits 5-2: reserved (0)
- bit 1: software contrast control is supported
- bit 0: set operation was succesful (always clear on get)
- BL = contrast (00h = minimum, FFh = maximum)
- Note: this function operates independently of AX=1E06h
- SeeAlso: AX=1E00h,AX=1E06h,AX=1E07h
- --------V-101EFE-----------------------------
- INT 10 - VIDEO - FLAT-PANEL - FUNCTION SUPPORT FLAG
- AX = 1EFEh
- ES:DI -> DWORD buffer for bitmap of supported functions
- (set to all zeros before calling)
- Return: ES:DI buffer updated with mask of supported functions
- Index: installation check;flat-panel display support
- SeeAlso: AX=1E00h,AX=1E06h
- --------V-101F00-----------------------------
- INT 10 - VIDEO - XGA - GET DMQS (Display Mode Query and Set) DATA LENGTH
- AX = 1F00h
- Return: AL = 1Fh if supported
- BX = number of bytes of DMQS data
- Note: not supported on the original IBM XGA, only on XGA-NI (non-interlaced)
- and later models.
- SeeAlso: AX=1F01h
- --------V-101F01-----------------------------
- INT 10 - VIDEO - XGA - READ DMQS DATA
- AX = 1F01h
- ES:DI -> user buffer for return data (call AX=1F00h for size)
- Return: AL = 1Fh if function supported
- user buffer filled with DMQS data (see #0058)
- Note: not supported on the original IBM XGA, only on XGA-NI (non-interlaced)
- and later models.
- SeeAlso: AH=1Bh,AX=1F00h,AX=3000h
-
- Format of XGA DMQS buffer:
- Offset Size Description (Table 0058)
- 00h WORD offset (in bytes) to DMQS data for next XGA instance
- 02h BYTE slot number
- 03h BYTE XGA implementation function level identifier
- 04h BYTE XGA implementation resolution level identifier
- 05h WORD vendor identifier - identifies card vendor
- 07h WORD vendor defined field
- 09h WORD XGA adapter I/O register base address
- 0Bh WORD XGA coprocessor register base address
- (paragraph--multiply by 10h to get physical address)
- 0Dh WORD 1 Megabyte system video memory aperture
- 0000h if not allocated
- (Multiply by 100000h to get physical address)
- 0Fh WORD 4 Megabyte system video memory aperture
- 0000h if not allocated
- (multiply by 100000h to get physical address)
- 11h WORD video memory base address
- (multiply by 100000h to get physical address)
- 13h WORD composite ID of the attached display
- 15h BYTE amount of video memory available, in multiples of 256K bytes
- 16h DWORD alternate XGA coprocessor register base address. 0 = none.
- 1Ah var DMQS Data for further XGA Instances (as above)
- Note: "Instances" refers to the capability of having up to 8 XGA
- adapters in one computer.
- SeeAlso: #0059
- --------V-101F02-----------------------------
- INT 10 - VIDEO - XGA - GET SVGA DMQS DATA LENGTH
- AX = 1F02h
- Return: AL = 1Fh if function supported
- BX = length of SVGA DMQS data in bytes
- SeeAlso: AX=1F00h,AX=1F03h
- --------V-101F03-----------------------------
- INT 10 - VIDEO - XGA - GET SVGA DMQS DATA
- AX = 1F03h
- ES:DI -> buffer for SVGA DMQS data (see #0059)
- Return: AL = 1Fh if function supported
- ES:DI buffer filled
- SeeAlso: AX=1F00h,AX=1F02h
-
- Format of SVGA DMQS data:
- Offset Size Description (Table 0059)
- 00h WORD offset to DMQS data for next SVGA instance or 0000h
- 02h BYTE reserved
- 03h BYTE SVGA implementation functional level
- 04h BYTE SVGA implementation resolution level
- 05h WORD vendor ID
- 07h WORD vendor-specific
- 09h 7 BYTEs reserved
- 10h BYTE SVGA linear address window size
- 00h 64K
- 01h 1M
- 02h 2M
- 03h 4M
- 11h WORD SVGA linear address window location or 0000h if not allocated
- (multiply by 10000h [shift left 16 bits] to get physical addr)
- 13h WORD attached monitor's composite monitor ID
- 15h BYTE available video RAM in multiples of 256K
- 16h 11 BYTEs reserved
- SeeAlso: #0058
- --------V-103000CX0000-----------------------
- INT 10 - VIDEO - LOCATE 3270PC CONFIGURATION TABLE (INSTALLATION CHECK)
- AX = 3000h
- CX = 0000h
- DX = 0000h
- Return: CX:DX -> 3270PC configuration table (see #0060)
- CX:DX = 0000h:0000h if 3270PC Control Program not active
- SeeAlso: AX=1F01h
-
- Format of 3270 PC configuration table:
- Offset Size Description (Table 0060)
- 00h BYTE aspect ratio X
- 01h BYTE aspect ratio Y
- 02h BYTE monitor type (see #0061)
- 03h BYTE reserved
- 04h BYTE adapter ID
- 00h = 5151/5272 adapter
- 04h = 5151/5272 with XGA adapter
- 30h = 3295 or 3270PC G/GX adapter
- 05h BYTE reserved
- 06h BYTE function flags 1 (see #0062)
- 07h BYTE function flags 2
- bit 6: GPI graphics supported
- 08h WORD segment address of Control Program Level table (see #0063)
- 0Ah 10 BYTEs reserved
-
- (Table 0061)
- Values for 3270 PC monitor type:
- 00h 5151 (mono) or 5272 (color)
- 01h 3295
- 02h 5151 or 5272 with XGA (???) graphics adapter
- 03h 5279 with 3270PC G adapter
- 04h 5379 model C01 with 3270PC GX adapter
- 05h 5379 model M01 with 3270PC GX adapter
- 07h non-3270PC with 3270 Workstation Program
- FFh 3270PC Control Program not loaded
-
- Bitfields for 3270 PC function flags 1:
- Bit(s) Description (Table 0062)
- 7 mono text, 1 page
- 6 color text, 1 page
- 5 color text, 4 pages
- 4 CGA color graphics
- 3 720x350 two-color graphics
- 2 360x350 four-color graphics
- 1 720x350 eight-color graphics
-
- Format of Control Program Level table:
- Offset Size Description (Table 0063)
- 00h WORD program version
- 02xxh = 3270PC Control Program v2.xx
- 03xxh = 3270PC Control Program v3.xx
- 04xxh = 3270 Workstation Program v1.xx
- 02h BYTE Control Program ID (00h)
- 03h 27 BYTEs Control Program Descriptor ("IBM 3270 PC CONTROL PROGRAM")
- --------a-103800-----------------------------
- INT 10 - Tinytalk Personal v1.09f+ - GET CONFIGURATION INFO
- AX = 3800h
- Return: ES:DI -> configuration info (see #0064)
- Program: Tinytalk is a shareware screen reader by OMS Development/Eric Bohlman
- Notes: this call is also used as the installation check by verifying that the
- returned ES:DI points at valid configuration info
- Tinytalk v1.09f ignores AL and always returns the configuration info;
- v1.10 adds several subfunctions selected with AL
- SeeAlso: AX=3801h,AX=3803h,AX=3806h,AH=39h,INT 14/AX=F0F1h
- SeeAlso: INT 2F/AX=FB00h"AutoBraille"
- Index: installation check;Tinytalk Personal
-
- Format of Tinytalk Personal configuration info:
- Offset Size Description (Table 0064)
- 00h 8 BYTEs signature "TTCONFIG"
- 08h WORD size of configuration data, not counting signature, this WORD,
- or the following byte
- 0Ah BYTE ???
- 0Bh ??? configuration data
- --------a-103801-----------------------------
- INT 10 - Tinytalk Personal v1.10 - ???
- AX = 3801h
- DL = ???
- Return: ???
- SeeAlso: AX=3800h,AX=3802h
- --------a-103802-----------------------------
- INT 10 - Tinytalk Personal v1.10 - ???
- AX = 3802h
- DL = ???
- Return: ???
- SeeAlso: AX=3800h,AX=3801h
- --------a-103803-----------------------------
- INT 10 - Tinytalk Personal v1.10 - GET ???
- AX = 3803h
- Return: AL = ???
- SeeAlso: AX=3800h,AX=3804h,AX=3805h
- --------a-103804-----------------------------
- INT 10 - Tinytalk Personal v1.10 - GET ???
- AX = 3804h
- Return: AX = ???
- SeeAlso: AX=3800h,AX=3803h,AX=3805h
- --------a-103805-----------------------------
- INT 10 - Tinytalk Personal v1.10 - GET ???
- AX = 3805h
- Return: AL = ???
- SeeAlso: AX=3800h,AX=3803h,AX=3804h
- --------a-103806-----------------------------
- INT 10 - Tinytalk Personal v1.10 - ???
- AX = 3806h
- ES:DX -> ASCIZ ???
- Return: ???
- SeeAlso: AX=3800h
- --------a-1039-------------------------------
- INT 10 - Tinytalk Personal v1.10 - ???
- AH = 39h
- Program: Tinytalk is a shareware screen reader by OMS Development/Eric Bohlman
- Note: this function was a NOP in TTDEMO.EXE, but may be implemented in other
- variants of Tinytalk
- --------V-1040-------------------------------
- INT 10 - VIDEO - SET GRAPHICS MODE (Hercules GRAFIX)
- AH = 40h
- Return: nothing
- Desc: switch the Hercules Graphics Card into graphics mode (720x348)
- SeeAlso: AH=00h,AH=41h
- Index: video modes;Hercules
- --------V-1041-------------------------------
- INT 10 - VIDEO - SET TEXT MODE (Hercules GRAFIX)
- AH = 41h
- Return: nothing
- Desc: switch the Hercules Graphics Card into text mode
- SeeAlso: AH=00h,AH=40h
- Index: video modes;Hercules
- --------V-1042-------------------------------
- INT 10 - VIDEO - CLEAR CURRENT PAGE (Hercules GRAFIX)
- AH = 42h
- Return: nothing
- SeeAlso: AH=45h
- --------V-1043-------------------------------
- INT 10 - VIDEO - SELECT DRAWING PAGE (Hercules GRAFIX)
- AH = 43h
- AL = page number (0,1)
- Return: nothing
- Desc: specify which of the two pages of video memory is to be used for
- output
- SeeAlso: AH=05h,AH=44h,AH=45h
- --------V-1044-------------------------------
- INT 10 - VIDEO - SELECT DRAWING FUNCTION (Hercules GRAFIX)
- AH = 44h
- AL = drawing function
- 00h clear pixels
- 01h set pixels
- 02h invert pixels
- Return: nothing
- Desc: specify how graphics output will change the display
- SeeAlso: AH=45h,AH=46h,AH=4Ch,AH=4Dh
- --------V-1045-------------------------------
- INT 10 - VIDEO - SELECT PAGE TO DISPLAY (Hercules GRAFIX)
- AH = 45h
- AL = page number (0,1)
- Return: nothing
- Desc: specify which of the two pages of video memory is visible on screen
- SeeAlso: AH=05h,AH=42h,AH=43h
- --------V-1046-------------------------------
- INT 10 - VIDEO - DRAW ONE PIXEL (Hercules GRAFIX)
- AH = 46h
- DI = x (0-719)
- BP = y (0-347)
- Return: nothing
- Note: function 44h determines operation and function 43h which page to use
- SeeAlso: AH=0Ch,AH=47h,AH=49h,AH=4Ch,AH=4Dh
- --------V-1047-------------------------------
- INT 10 - VIDEO - FIND PIXEL VALUE (Hercules GRAFIX)
- AH = 47h
- DI = x (0-719)
- BP = y (0-347)
- Return: AL = 00h pixel clear
- AL = 01h pixel set
- Note: function 43h specifies which page is used
- SeeAlso: AH=0Dh,AH=46h
- --------V-1048-------------------------------
- INT 10 - VIDEO - MOVE TO POINT (Hercules GRAFIX)
- AH = 48h
- DI = x (0-719)
- BP = y (0-347)
- Return: nothing
- Desc: specify the location from which to start the next graphics output
- SeeAlso: AH=49h
- --------V-1049-------------------------------
- INT 10 - VIDEO - DRAW TO POINT (Hercules GRAFIX)
- AH = 49h
- DI = x (0-719)
- BP = y (0-347)
- Return: nothing
- Note: function 48h or 49h specify first point, 44h operation and 43h page to
- use
- SeeAlso: AH=43h,AH=44h,AH=48h,AH=4Ch,AH=4Dh
- --------V-104A-------------------------------
- INT 10 - VIDEO - BLOCK FILL (Hercules GRAFIX)
- AH = 4Ah
- DI = x coordinate of lower left corner
- BP = y coordinate of lower left corner
- BX = height in pixels
- CX = width in pixels
- Return: nothing
- Desc: draw a solid rectangle of the specified size at the given location
- SeeAlso: AH=4Eh
- --------V-104B-------------------------------
- INT 10 - VIDEO - DISPLAY CHARACTER (Hercules GRAFIX)
- AH = 4Bh
- AL = character to display
- DI = x (0-719)
- BP = y (0-347)
- Return: nothing
- Note: unlike the other BIOS character functions character position is
- specified in pixels rather than rows and columns
- SeeAlso: AH=09h,AH=0Ah
- --------P-104B-------------------------------
- INT 10 - FRIEZE - API
- AH = 4Bh
- CL = function
- 00h (v6.x-) print window
- AL = mode
- 00h character
- 01h normal
- 02h sideways
- 01h load window
- ES:BX -> ASCIZ filename from which to read
- 02h save window
- ES:BX -> ASCIZ filename to which to write
- 03h set print width
- AL = width in 1/4 inches
- 04h set print height
- AL = height in 1/4 inches
- 05h reserved
- 06h set left margin
- AL = printout margin in 1/4 inches
- 07h set window size
- ES:BX -> four-WORD structure with Xmin, Ymin, Xmax, Ymax
- 08h reserved
- 09h set patterns
- ES:BX -> 16-BYTE vector of screen->printer color correspondnces
- 0Ah get patterns
- ES:BX -> 16-BYTE buffer for color correspondences
- 0Bh set mode
- AL = mode
- 0Ch (v7.41) ???
- AL = ???
- 00h ??? (calls original INT 05)
- else ???
- 0Dh (v7.41) ???
- AL = ???
- 00h ??? (calls original INT 05)
- else ???
- 0Eh (v7.41) ???
- ???
- 0Fh get window
- ES:BX -> four-WORD buffer for Xmin, Ymin, Xmax, Ymax
- 10h set print options
- ES:BX -> printer options in same format as FRIEZE cmdline
- 11h initialize
- ES:BX -> three-WORD array from CARDS.DAT for HRes, VRes, code
- 12h (v7.41) ???
- ???
- 13h (v7.41) ???
- ???
- 14h get version
- Return: AH = major version (00h if FRIEZE version before 7)
- AL = minor version
- 15h set parameters
- ES:BX -> parameter table (see #0066)
- 16h get parameters
- ES:BX -> buffer for parameter table (see #0066)
- 17h get printer resolution
- ES:BX -> 12-WORD table for six horizontal/vertical resol pairs
- 18h (v8.0 only) reserved
- 50h (v7.41) get ???
- Return: AX = ???
- 51h (v7.41) get ???
- Return: ES = ??? (seen 2348h)
- AX = ??? (seen 8432h)
- Return: AX = status (see #0065)
- SeeAlso: AH=0Fh/SI=F123h
-
- (Table 0065)
- Values for FRIEZE function status:
- 00h successful
- 01h user aborted printout with ESC
- 02h reserved
- 03h file read error
- 04h file write error or printer error
- 05h file not found
- 06h invalid header (not an image or wrong screen mode) or can't create file
- 07h file close error
- 08h disk error
- 09h (v7.0+) printer error
- 0Ah invalid function
- 0Bh (v7.0+) can't create file
- 0Ch (v7.0+) wrong video mode
-
- Format of FRIEZE parameter table:
- Offset Size Description (Table 0066)
- 00h WORD top margin (1/100 inch)
- 02h WORD left margin (1/100 inch)
- 04h WORD horizontal size (1/100 inch)
- 06h WORD vertical size (1/100 inch)
- 08h WORD quality/draft mode
- 00h draft mode
- 01h quality mode
- 02h use horizontal/vertical resolution for output resolution
- 0Ah WORD printer horizontal resolution (dots per inch)
- 0Ch WORD printer vertical resolution (dots per inch)
- 0Eh WORD reserved (FFFFh)
- Note: any field which should remain unchanged may be filled with FFFFh
- --------V-104C-------------------------------
- INT 10 - VIDEO - DRAW ARC (Hercules GRAFIX)
- AH = 4Ch
- AL = quadrant (1 = upper right, 2 = upper left, etc)
- DI = x coordinate of center
- BP = y coordinate of center
- BX = radius
- Return: nothing
- SeeAlso: AH=49h,AH=4Dh
- --------V-104D-------------------------------
- INT 10 - VIDEO - DRAW CIRCLE (Hercules GRAFIX)
- AH = 4Dh
- DI = x of center
- BP = y of center
- BX = radius
- Return: nothing
- SeeAlso: AH=49h,AH=4Ch
- --------V-104E-------------------------------
- INT 10 - VIDEO - FILL AREA (Hercules GRAFIX)
- AH = 4Eh
- DI = x coordinate of an interior point
- BP = y coordinate of an interior point
- Return: nothing
- Desc: fill a convex polygonal area bounded by a contiguous line of the
- opposite color with the border color
- Note: the first fill makes the figure solid, the second erases it
- SeeAlso: AH=4Ah
- --------V-104E00-----------------------------
- INT 10 - VESA XGA BIOS Extensions - GET XGA ENVIRONMENT INFORMATION
- AX = 4E00h
- ES:DI -> 256-byte buffer for XGA information (see #0067)
- Return: AL = 4Eh if function supported
- AH = status
- 00h successful
- else error code
- Desc: determine whether VESA XGA extensions are present and the capabilities
- supported by the display adapter
- SeeAlso: AX=4E01h,AX=4E02h,AX=4F00h
- Index: installation check;VESA XGA
-
- Format of XGA information buffer:
- Offset Size Description (Table 0067)
- 00h 4 BYTEs signature ("VESA")
- 04h WORD VESA version number
- 06h DWORD pointer to ASCIZ OEM string
- 0Ah DWORD environment flags (see #0068)
- 0Eh WORD number of XGA adapters installed (other VESA XGA functions
- require a handle indicating which adapter to use)
- 10h 240 BYTEs reserved
-
- Bitfields for XGA environment flags:
- Bit(s) Description (Table 0068)
- 0-1 system bus (00 = MCA, 01 = ISA, 10 = EISA)
- 2 bus mastering available
- 3-31 reserved
- --------V-104E01----------------------------
- INT 10 - VESA XGA BIOS Extensions - RETURN XGA SUBSYSTEM INFORMATION
- AX = 4E01h
- DX = XGA handle (0 to number of XGAs-1)
- ES:DI -> 256-byte buffer for subsystem information (see #0069)
- Return: AL = 4Eh if function supported
- AH = status
- 00h function successful
- else error code
- SeeAlso: AX=4E00h,AX=4E02h
-
- Format of XGA subsystem information:
- Offset Size Description (Table 0069)
- 00h DWORD pointer to null-terminated board OEM string
- 04h DWORD capabilities (see #0070)
- 08h DWORD pointer to 8KB XGA ROM (or NULL)
- 0Ch DWORD pointer to the XGA memory mapped registers
- 10h WORD base address of XGA I/O registers (21x0h)
- 12h DWORD pointer to start of physical video memory
- (A000h:0000h or B000h:0000h)
- 16h DWORD physical address of 4MB aperture (or NULL if none)
- 1Ah DWORD physical address of 1MB aperture (or NULL if none)
- 1Eh DWORD physical address of 64KB aperture (or NULL if not enabled)
- 22h DWORD physical address of OEM aperture (or NULL if none)
- 26h WORD size of OEM aperture in 64KByte units
- 28h DWORD pointer to list of video modes
- The list is a series of WORDs terminated by FFFFh
- 2Ch WORD number of 64KB blocks on the board
- 2Eh DWORD XGA manufacturer ID
- byte 0 POS data index 1
- byte 1 is index 2
- byte 2 is 21xAh index 75h
- 32h 206 BYTEs reserved
-
- Bitfields for XGA capabilities:
- Bit(s) Description (Table 0070)
- 0-1 board bus architecture: 0=MCA, 1=ISA, 3=EISA
- 2-3 reserved
- 4-6 DMA Channel assigned for acquiring bus mastership (only for ISA bus)
- 7 DMA Channel Status (ISA only). enabled if set
- 8-31 reserved
- --------V-104E02-----------------------------------
- INT 10 - VESA XGA BIOS Extensions - RETURN XGA MODE INFORMATION
- AX = 4E02h
- CX = Video mode
- DX = XGA handle
- ES:DI -> 256 byte buffer for mode information (see #0071)
- Return: AL = 4Eh if function supported
- AH = status
- 00h function successful
- else error code
- SeeAlso: AX=4E00h,AX=4E01h
-
- Format of XGA mode information:
- Offset Size Description (Table 0071)
- 00h WORD attributes of the mode (see #0072)
- 02h WORD bytes per logical scanline
- 04h WORD horizontal resolution in pixels
- 06h WORD vertical resolution in scanlines
- 08h BYTE character Width in pixels
- 09h BYTE character Height in pixels
- 0Ah BYTE number of planes
- 0Bh BYTE bits per pixels
- 0Ch BYTE memory model (see #0073)
- 0Dh BYTE number of Image Pages
- 0Eh BYTE number of Red bits
- 0Fh BYTE bit position of Red bit field
- 10h BYTE number of Green bits
- 11h BYTE bit position of Green bit field
- 12h BYTE number of Blue bits
- 13h BYTE bit position of Blue bit field
- 14h BYTE number of Reserved bits
- 15h BYTE bit position of Reserved bit field
- 16h 235 BYTEs reserved
-
- Bitfields for XGA mode attributes:
- Bit(s) Description (Table 0072)
- 0 set if mode is supported
- 1 reserved
- 2 output is supported by the BIOS
- 3 reserved
- 4 if set this is a graphics mode (VGA registers inactive, XGA active),
- if clear this is a text mode (VGA registers active, XGA inactive)
-
- (Table 0073)
- Values for XGA video memory model:
- 00h Text Mode
- 01h CGA graphics
- 02h Hercules graphics
- 03h 4-planar graphics
- 04h Packed Pixel
- 05h Non-chain 4, 256 color
- 06h Direct Color
- 07h YUV-24
- --------V-104E03-----------------------------------
- INT 10 - VESA XGA BIOS Extensions - SET XGA VIDEO MODE
- AX = 4E03h
- BX = video mode
- CX = other command flags
- bit 0 If clear the feature connector is set to the default state
- DX = XGA handle
- ES:DI -> 256 byte buffer
- Return: AL = 4Eh if function supported
- AH = status
- 00h function successful
- else error code
- SeeAlso: AH=00h,AX=4E04h,AX=4F02h
- --------V-104E04-----------------------------------
- INT 10 - VESA XGA BIOS Extensions - RETURN CURRENT VIDEO MODE
- AX = 4E04h
- DX = XGA handle
- Return: AL = 4Eh if function supported
- AH = status
- 00h function successful
- BX??? = current mode
- else error code
- SeeAlso: AH=0Fh,AX=4E03h,AX=4F03h
- --------V-104E05-----------------------------------
- INT 10 - VESA XGA BIOS Extensions - SET FEATURE CONNECTOR STATE
- AX = 4E05h
- BX = Feature Connector State (see #0074)
- DX = XGA handle
- Return: AL = 4Eh if function supported
- AH = status
- 00h function successful
- else error code
- SeeAlso: AX=4E00h,AX=4E06h
-
- Bitfields for XGA Feature Connector State:
- Bit(s) Description (Table 0074)
- 0 Feature Connector is enabled
- 1 Feature Connector is in Output Mode rather than Input Mode
- 2-15 reserved (0)
- --------V-104E06-----------------------------------
- INT 10 - VESA XGA BIOS Extensions - RETURN FEATURE CONNECTOR STATE
- AX = 4E06h
- DX = XGA handle
- Return: AL = 4Eh if function supported
- AH = status
- 00h function successful
- else error code
- BX = Feature Connector State (see #0074)
- SeeAlso: AX=4E00h,AX=4E05h
- --------V-104F00-----------------------------
- INT 10 - VESA SuperVGA BIOS (VBE) - GET SuperVGA INFORMATION
- AX = 4F00h
- ES:DI -> buffer for SuperVGA information (see #0075)
- Return: AL = 4Fh if function supported
- AH = status
- 00h successful
- ES:DI buffer filled
- 01h failed
- ---VBE v2.0---
- 02h function not supported by current hardware configuration
- 03h function invalid in current video mode
- Desc: determine whether VESA BIOS extensions are present and the capabilities
- supported by the display adapter
- SeeAlso: AX=4E00h,AX=4F01h,AX=7F00h"SOLLEX",AX=A00Ch
- Index: installation check;VESA SuperVGA
-
- Format of SuperVGA information:
- Offset Size Description (Table 0075)
- 00h 4 BYTEs (ret) signature ("VESA")
- (call) VESA 2.0 request signature ("VBE2"), required to receive
- version 2.0 info
- 04h WORD VESA version number (one-digit minor version)
- 06h DWORD pointer to OEM name
- "761295520" for ATI
- 0Ah DWORD capabilities flags (see #0076)
- 0Eh DWORD pointer to list of supported VESA and OEM video modes
- (list of words terminated with FFFFh)
- 12h WORD total amount of video memory in 64K blocks
- ---VBE v1.x ---
- 14h 236 BYTEs reserved
- ---VBE v2.0 ---
- 14h WORD OEM software version
- 16h DWORD pointer to vendor name
- 1Ah DWORD pointer to product name
- 1Eh DWORD pointer to product revision string
- 22h 222 BYTEs reserved
- 100h 256 BYTEs OEM scratchpad
- Notes: the list of supported video modes is stored in the reserved portion of
- the SuperVGA information record by some implementations, and it may
- thus be necessary to either copy the mode list or use a different
- buffer for all subsequent VESA calls
- the 1.1 VESA document specifies 242 reserved bytes at the end, so the
- buffer should be 262 bytes to ensure that it is not overrun; for
- v2.0, the buffer should be 512 bytes
- the S3 specific video modes will most likely follow the FFFFh
- terminator at the end of the standard modes. A search must then
- be made to find them, FFFFh will also terminate this second list
-
- Bitfields for VESA capabilities:
- Bit(s) Description (Table 0076)
- 0 DAC can be switched into 8-bit mode
- 1 non-VGA controller
- 2 programmed DAC with blank bit
- 3-31 reserved
- SeeAlso: #0075
- --------V-104F01-----------------------------
- INT 10 - VESA SuperVGA BIOS - GET SuperVGA MODE INFORMATION
- AX = 4F01h
- CX = SuperVGA video mode
- ES:DI -> 256-byte buffer for mode information (see #0077)
- Return: AL = 4Fh if function supported
- AH = status
- 00h successful
- ES:DI buffer filled
- 01h failed
- Desc: determine the attributes of the specified video mode
- SeeAlso: AX=4F00h,AX=4F02h
-
- Format of VESA SuperVGA mode information:
- Offset Size Description (Table 0077)
- 00h WORD mode attributes (see #0078)
- 02h BYTE window attributes, window A (see #0079)
- 03h BYTE window attributes, window B (see #0079)
- 04h WORD window granularity in KB
- 06h WORD window size in KB
- 08h WORD start segment of window A
- 0Ah WORD start segment of window B
- 0Ch DWORD -> FAR window positioning function (equivalent to AX=4F05h)
- 10h WORD bytes per scan line
- ---remainder is optional for VESA modes in v1.0/1.1, needed for OEM modes---
- 12h WORD width in pixels (graphics) or characters (text)
- 14h WORD height in pixels (graphics) or characters (text)
- 16h BYTE width of character cell in pixels
- 17h BYTE height of character cell in pixels
- 18h BYTE number of memory planes
- 19h BYTE number of bits per pixel
- 1Ah BYTE number of banks
- 1Bh BYTE memory model type (see #0080)
- 1Ch BYTE size of bank in KB
- 1Dh BYTE number of image pages
- 1Eh BYTE reserved (0)
- ---VBE v1.2+---
- 1Fh BYTE red mask size
- 20h BYTE red field position
- 21h BYTE green mask size
- 22h BYTE green field size
- 23h BYTE blue mask size
- 24h BYTE blue field size
- 25h BYTE reserved mask size
- 26h BYTE reserved mask position
- 27h BYTE direct color mode info
- bit 0: color ramp is programmable
- bit 1: bytes in reserved field may be used by application
- ---VBE v2.0 ---
- 28h DWORD physical address of linear video buffer
- 2Ch DWORD pointer to start of offscreen memory
- 30h WORD KB of offscreen memory
- 32h 206 BYTEs reserved (0)
-
- Bitfields for VESA SuperVGA mode attributes:
- Bit(s) Description (Table 0078)
- 0 mode supported
- 1 optional information available
- 2 BIOS output supported
- 3 set if color, clear if monochrome
- 4 set if graphics mode, clear if text mode
- ---VBE v2.0 ---
- 5 mode is not VGA-compatible
- 6 bank-switched mode not supported
- 7 linear framebuffer mode supported
-
- Bitfields for VESA SuperVGA window attributes:
- Bit(s) Description (Table 0079)
- 0 exists
- 1 readable
- 2 writable
- 3-7 reserved
-
- (Table 0080)
- Values for VESA SuperVGA memory model type:
- 00h text
- 01h CGA graphics
- 02h HGC graphics
- 03h 16-color (EGA) graphics
- 04h packed pixel graphics
- 05h "sequ 256" (non-chain 4) graphics
- 06h direct color (HiColor, 24-bit color)
- 07h YUV (luminance-chrominance, also called YIQ)
- 08h-0Fh reserved for VESA
- 10h-FFh OEM memory models
- --------V-104F02-----------------------------
- INT 10 - VESA SuperVGA BIOS - SET SuperVGA VIDEO MODE
- AX = 4F02h
- BX = mode (see #0081,#0082)
- bit 15 set means don't clear video memory
- bit 14 set means enable linear framebuffer mode (VBE v2.0+)
- Return: AL = 4Fh if function supported
- AH = status
- 00h successful
- 01h failed
- SeeAlso: AX=4E03h,AX=4F01h,AX=4F03h
-
- (Table 0081)
- Values for VESA video mode:
- 00h-FFh OEM video modes (see #0009 at AH=00h)
- 100h 640x400x256
- 101h 640x480x256
- 102h 800x600x16
- 103h 800x600x256
- 104h 1024x768x16
- 105h 1024x768x256
- 106h 1280x1024x16
- 107h 1280x1024x256
- 108h 80x60 text
- 109h 132x25 text
- 10Ah 132x43 text
- 10Bh 132x50 text
- 10Ch 132x60 text
- ---VBE v1.2---
- 10Dh 320x200x32K
- 10Eh 320x200x64K
- 10Fh 320x200x16M
- 110h 640x480x32K
- 111h 640x480x64K
- 112h 640x480x16M
- 113h 800x600x32K
- 114h 800x600x64K
- 115h 800x600x16M
- 116h 1024x768x32K
- 117h 1024x768x64K
- 118h 1024x768x16M
- 119h 1280x1024x32K
- 11Ah 1280x1024x64K
- 11Bh 1280x1024x16M
- ---VBE 2.0---
- 120h 1600x1200x256
- 121h 1600x1200x32K
- 122h 1600x1200x64K
- 81FFh special full-memory access mode
- Note: the special mode 81FFh preserves the contents of the video memory and
- gives access to all of the memory; VESA recommends that the special
- mode be a packed-pixel mode
- SeeAlso: #0009,#0010,#0082,#0123
- Index: video modes;VESA
-
- (Table 0082)
- Values for S3 OEM video mode:
- 201h 640x480x256
- 202h 800x600x16
- 203h 800x600x256
- 204h 1024x768x16
- 205h 1024x768x256
- 206h 1280x960x16
- 207h 1152x864x256 (Diamond Stealth 64)
- 208h 1280x1024x16
- 209h 1152x864x32K
- 20Ah 1152x864x64K (Diamond Stealth 64)
- 20Bh 1152x864x4G
- 211h 640x480x64K (Diamond Stealth 24)
- 211h 640x400x4G (Diamond Stealth64 Video / Stealth64 Graphics)
- 212h 640x480x16M (Diamond Stealth 24)
- 301h 640x480x32K
- Note: these modes are only available on video cards using S3's VESA driver
- SeeAlso: #0081,#0123,#0656 at INT 1A/AX=B102h
- Index: video modes;S3
- --------V-104F03-----------------------------
- INT 10 - VESA SuperVGA BIOS - GET CURRENT VIDEO MODE
- AX = 4F03h
- Return: AL = 4Fh if function supported
- AH = status
- 00h successful
- BX = video mode (see #0081,#0082)
- bit 14: linear frame buffer enabled (VBE v2.0+)
- bit 15: don't clear video memory
- 01h failed
- SeeAlso: AH=0Fh,AX=4E04h,AX=4F02h
- --------V-104F04-----------------------------
- INT 10 - VESA SuperVGA BIOS - SAVE/RESTORE SuperVGA VIDEO STATE
- AX = 4F04h
- DL = subfunction
- 00h get state buffer size
- Return: BX = number of 64-byte blocks needed
- 01h save video states
- ES:BX -> buffer
- 02h restore video states
- ES:BX -> buffer
- CX = states to save/restore (see #0083)
- Return: AL = 4Fh if function supported
- AH = status
- 00h successful
- 01h failed
-
- Bitfields for VESA SuperVGA states to save/restore:
- Bit(s) Description (Table 0083)
- 0 video hardware state
- 1 video BIOS data state
- 2 video DAC state
- 3 SuperVGA state
- --------V-104F05-----------------------------
- INT 10 - VESA SuperVGA BIOS - CPU VIDEO MEMORY CONTROL
- AX = 4F05h
- BH = subfunction
- 00h select video memory window
- DX = window address in video memory (in granularity units)
- 01h get video memory window
- Return: DX = window address in video memory (in gran. units)
- BL = window number
- 00h window A
- 01h window B
- Return: AL = 4Fh if function supported
- AH = status
- 00h successful
- 01h failed
- BUG: Phoenix S3 Trio64V+ v1.02-02 reportedly returns garbage in DX for
- subfunction 01h
- SeeAlso: AX=4F01h,AX=4F06h,AX=4F07h,AX=7000h/BX=0004h
- --------V-104F06-----------------------------
- INT 10 - VESA SuperVGA BIOS v1.1+ - GET/SET LOGICAL SCAN LINE LENGTH (PIXELS)
- AX = 4F06h
- BL = subfunction
- 00h set scan line length
- CX = desired width in pixels
- 01h get scan line length
- Return: AL = 4Fh if function supported
- AH = status
- 00h successful
- 01h failed
- BX = bytes per scan line
- CX = number of pixels per scan line
- DX = maximum number of scan lines
- Notes: if the desired width is not achievable, the next larger width will be
- set
- the scan line may be wider than the visible area of the screen
- this function is valid in text modes, provided that pixel values are
- multiplied by the character cell width/height
- SeeAlso: AX=4F01h,AX=4F05h,AX=4F06h/BL=02h,AX=4F06h/BL=03h,AX=4F07h
- --------V-104F06BL02-------------------------
- INT 10 - VESA SuperVGA BIOS v2.0+ - SET LOGICAL SCAN LINE LENGTH (BYTES)
- AX = 4F06h
- BL = 02h
- CX = desired scanline width in bytes
- Return: AL = 4Fh if function supported
- AH = status
- 00h successful
- 01h failed
- BX = bytes per scan line
- CX = number of pixels per scan line
- DX = maximum number of scan lines
- Notes: if the desired width is not achievable, the next larger width will be
- set
- the scan line may be wider than the visible area of the screen
- this function is valid in text modes, provided that pixel values are
- multiplied by the character cell width/height
- SeeAlso: AX=4F01h,AX=4F05h,AX=4F06h,AX=4F06h/BL=03h,AX=4F07h
- --------V-104F06BL03-------------------------
- INT 10 - VESA SuperVGA BIOS v2.0+ - GET MAXIMUM SCAN LINE LENGTH
- AX = 4F06h
- BL = 03h
- Return: AL = 4Fh if function supported
- AH = status
- 00h successful
- 01h failed
- BX = maximum bytes per scan line
- CX = maximum number of pixels per scan line
- Notes: this function is valid in text modes, provided that pixel values are
- multiplied by the character cell width/height
- SeeAlso: AX=4F01h,AX=4F05h,AX=4F06h,AX=4F06h/BL=02h,AX=4F07h
- --------V-104F07-----------------------------
- INT 10 - VESA SuperVGA BIOS v1.1+ - GET/SET DISPLAY START
- AX = 4F07h
- BL = subfunction
- 00h,80h set display start
- CX = leftmost displayed pixel in scan line
- DX = first displayed scan line
- 01h get display start
- Return: BH = 00h
- CX = leftmost displayed pixel in scan line
- DX = first displayed scan line
- BH = 00h (reserved)
- Return: AL = 4Fh if function supported
- AH = status
- 00h successful
- 01h failed
- Notes: this function is valid in text modes, provided that values are
- multiplied by the character cell width/height
- subfunction 80h waits until vertical retrace before changing the
- display start address (VBE v2.0+)
- SeeAlso: AX=4F01h,AX=4F05h,AX=4F06h
- --------V-104F08-----------------------------
- INT 10 - VESA SuperVGA BIOS v1.2+ - GET/SET DAC PALETTE CONTROL
- AX = 4F08h
- BL = subfunction
- 00h set DAC palette width
- BH = desired number of bits per primary color
- 01h get DAC palette width
- Return: AL = 4Fh if function supported
- AH = status
- 00h successful
- 01h failed
- BH = current number of bits per primary (06h = standard VGA)
- --------V-104F09-----------------------------
- INT 10 - VESA SuperVGA BIOS v2.0+ - GET/SET PALETTE ENTRIES
- AX = 4F09h
- BL = subfunction
- 00h set (primary) palette
- 01h get (primary) palette
- 02h set secondary palette data
- 03h get secondary palette data
- 80h set palette during vertical retrace
- CX = number of entries to change
- DX = starting palette index
- ES:DI -> palette buffer (see #0084)
- Return: AL = 4Fh if function supported
- AH = status
- 00h successful
- 01h failed
- SeeAlso: AX=4F0Ah,AX=D000h"S3VBE"
-
- Format of VESA VBE palette entry:
- Offset Size Description (Table 0084)
- 00h BYTE red
- 01h BYTE green
- 02h BYTE blue
- 03h BYTE alpha or alignment byte
- --------V-104F0ABL00-------------------------
- INT 10 - VESA SuperVGA BIOS v2.0+ - GET PROTECTED-MODE INTERFACE
- AX = 4F0Ah
- BL = 00h
- Return: AL = 4Fh if function supported
- AH = status
- 00h successful
- ES:DI -> protected-mode table (see #0085)
- CX = length of table in bytes, included protected-mode code
- 01h failed
- SeeAlso: AX=4F00h,AX=4F05h,AX=4F07h,AX=4F09h
-
- Format of VESA VBE 2.0 protected-mode table:
- Offset Size Description (Table 0085)
- 00h WORD offset (within table) of protected-mode code for Function 5
- (Set Window)
- 02h WORD offset of protected-mode code for Function 7 (Set Disp Start)
- 04h WORD offset of protected-mode code for Function 9 (Set Primary
- Palette)
- 06h WORD offset (within table) of list of I/O ports and memory locations
- for which I/O privilege may be required in protected mode
- (0000h if no list)
- 08h var code and optional port/memory list
- --------V-104F0A-----------------------------
- INT 10 - VESA SuperVGA BIOS v2.0 beta - GET PROTECTED-MODE CODE
- AX = 4F0Ah
- BX = function to be copied (see #0086)
- Return: AL = 4Fh if function supported
- AH = status
- 00h successful
- CX = number of bytes to copy
- ES:DI -> code for requested function
- 01h failed
- SeeAlso: AX=4F09h,AX=D000h"S3VBE"
-
- (Table 0086)
- Values for VESA VBE protected-mode function identifiers:
- 0001h set bank (see AX=4F05h)
- 0002h set display start (see AX=4F07h)
- 0003h set palette (see AX=4F09h)
- --------V-104F0B-----------------------------
- INT 10 - VESA SuperVGA BIOS - RESERVED FOR FUTURE SVGA FUNCTIONS
- AX = 4F0Bh-4F0Fh
- SeeAlso: AX=4F00h
- --------p-104F10BL00-------------------------
- INT 10 - VESA VBE/PM (Power Management) v1.0+ - GET CAPABILITIES
- AX = 4F10h
- BL = 00h
- ES:DI = 0000h:0000h (reserved for future use as pointer to info block)
- Return: AL = 4Fh if function supported (installed)
- AH = call status
- 00h successful
- else failed
- ---if successful---
- BL = VBE/PM version (bits 7-4: major, bits 3-0: minor)
- BH = supported states (see #0087)
- ES:DI unchanged
- Index: installation check;VESA VBE/Power Management|VESA DPMS
- SeeAlso: AX=4F10h/BL=01h,AX=4F10h/BL=02h
-
- Bitfields for VESA VBE/PM supported power states:
- Bit(s) Description (Table 0087)
- 0 standby
- 1 suspend
- 2 off
- 3 reduced on
- --------p-104F10BL01-------------------------
- INT 10 - VESA VBE/PM (Power Management) v1.0+ - SET DISPLAY POWER STATE
- AX = 4F10h
- BL = 01h
- BH = new state (see #0088)
- Return: AL = 4Fh if function supported
- AH = call status
- 00h successful
- else failed
- SeeAlso: AX=4F10h/BL=00h,AX=4F10h/BL=02h,AX=A00Ch
-
- (Table 0088)
- Values for VESA VBE/PM power state:
- 00h On
- 01h standby
- 02h suspend
- 04h Off
- 08h reduced On (for flat screens)
- --------p-104F10BL02-------------------------
- INT 10 - VESA VBE/PM (Power Management) v1.0+ - GET DISPLAY POWER STATE
- AX = 4F10h
- BL = 02h
- Return: AL = 4Fh if function supported
- AH = call status
- 00h successful
- BH = current power state (see #0088)
- else failed
- SeeAlso: AX=4F10h/BL=00h,AX=4F10h/BL=01h,AX=A00Dh
- --------V-104F11-----------------------------
- INT 10 - VESA VBE/FP (Flat Panel Interface) - API
- AX = 4F11h
- BL = function
- 00h installation check / get capabilities
- other registers vary by function
- Return: varies by function
- --------V-104F12-----------------------------
- INT 10 - VESA VBE/CI (Cursor Interface) - API
- AX = 4F12h
- BL = function
- other registers vary by function
- Return: varies by function
- SeeAlso: AX=4F4Dh
- --------s-104F13BX0000-----------------------
- INT 10 - VESA VBE/AI (Audio Interface) - INSTALLATION CHECK
- AX = 4F13h
- BX = 0000h
- Return: AL = 4Fh if function supported
- AH = status
- 00h successful
- BX = version (0010h for 1.00 -- note nonstandard value!)
- 01h failed
- SeeAlso: AX=4F13h/BX=0001h,AX=4F13h/BX=0005h
- --------s-104F13BX0001-----------------------
- INT 10 - VESA VBE/AI (Audio Interface) - LOCATE DEVICE
- AX = 4F13h
- BX = 0001h
- CX = 0000h ???
- DX = type of device
- 0001h Wave device
- 0002h MIDI device
- 0003h Volume device
- Return: AL = 4Fh if function supported
- AH = status
- 00h successful
- CX = handle [returned 1 for DX=1 and 3, and 2 for DX=2]
- 01h failed
- SeeAlso: AX=4F13h/BX=0000h,AX=4F13h/BX=0002h
- --------s-104F13BX0002-----------------------
- INT 10 - VESA VBE/AI (Audio Interface) - QUERY DEVICE
- AX = 4F13h
- BX = 0002h
- CX = handle
- DX = query
- 0001h return length of GeneralDeviceClass
- 0002h return copy of GeneralDeviceClass (see #0089)
- 0003h return length of Volume Info Structure
- 0004h return copy of Volume Info Structure (see #0099)
- 0005h return length of Volume Services Structure
- 0006h return copy of Volume Services Structure (see #0101)
- 0007h-000Fh reserved
- 0010h-FFFFh device-specific
- SI:DI -> buffer (functions 0002h,0004h,0006h)
- Return: AL = 4Fh if function supported
- AH = status
- 00h successful
- SI:DI = length (functions 1,3,5)
- SI:DI buffer filled (functions 2,4,6)
- 01h failed
- Note: functions 0003h to 0006h are only supported for the Volume device
-
- Format of GeneralDeviceClass structure:
- Offset Size Description (Table 0089)
- 00h 4 BYTEs name of the structure ("GENI")
- 04h DWORD structure length
- 08h WORD type of device (1=Wave, 2=MIDI)
- 0Ah WORD version of VESA driver support (0100h for 1.00)
- 10h var for CX=handle for Wave device:
- Wave Info structure (see #0090)
- some bytes ???
- for CX=handle for MIDI device:
- MIDI Info Structure (see #0095)
- first 8 bytes of MIDI Service Structure ???
- SeeAlso: #0099,#0101
-
- Format of WAVE Info Structure:
- Offset Size Description (Table 0090)
- 00h 4 BYTEs name of the structure ("WAVI")
- 04h DWORD structure length [0000007Eh]
- 08h DWORD driver software version [00000003h]
- 0Ch 32 BYTEs vendor name, etc. (ASCIZ string)
- 2Ch 32 BYTEs vendor product name
- 4Ch 32 BYTEs vendor chip/hardware description
- 6Ch BYTE installed board number
- 6Dh 3 BYTEs unused data
- 70h DWORD feature bits (see #0091)
- 74h WORD user determined preference field
- 76h WORD memory required for driver use [0200h]
- 78h WORD number of timer tick callbacks per second [0000h]
- 7Ah WORD channels: 1 = mono, 2 = stereo
- stereo is assumed to be interleaved data
- 7Ch WORD bitfield of max sample sizes (see #0092)
- SeeAlso: #0095
-
- Bitfields for Wave feature bits:
- Bit(s) Description (Table 0091)
- 0 8000hz Mono Playback
- 1 8000hz Mono Record
- 2 8000hz Stereo Record
- 3 8000hz Stereo Playback
- 4 8000hz Full Duplex Play/Record
- 5 11025hz Mono Playback
- 6 11025hz Mono Record
- 7 11025hz Stereo Record
- 8 11025hz Stereo Playback
- 9 11025hz Full Duplex Play/Record
- 10 22050hz Mono Playback
- 11 22050hz Mono Record
- 12 22050hz Stereo Record
- 13 22050hz Stereo Playback
- 14 22050hz Full Duplex Play/Record
- 15 44100hz Mono Playback
- 16 44100hz Mono Record
- 17 44100hz Stereo Record
- 18 44100hz Stereo Playback
- 19 44100hz Full Duplex Play/Record
- 20-26 reserved (0)
- 27 driver must pre-handle the data
- 28 Variable Sample mono playback
- 29 Variable Sample stereo playback
- 30 Variable Sample mono record
- 31 Variable Sample stereo record
-
- (Table 0092)
- Values for Sample data size:
- 01h 8bit play
- 02h 16bit play
- 10h 8bit record
- 20h 16bit record
-
- Format of WAVE Audio Services structure:
- Offset Size Description (Table 0093)
- 00h 4 BYTEs name of the structure
- 04h DWORD structure length
- 08h 16 BYTEs for future expansion
- ---entry points (details???)---
- 18h DWORD DeviceCheck
- 11h compression (see also #0094)
- 12h driver state
- 13h get current pos
- 14h sample rate
- 15h set preference
- 16h get DMA,IRQ
- 17h get IO address
- 18h get mem address
- 19h get mem free
- 1Ah full duplex
- 1Bh get block size
- 1Ch get PCM format
- 1Dh enable PCM format
- 80h-.. vendors can add DevChks above 0x80
- 1Ch DWORD PCMInfo
- 20h DWORD PlayBlock
- 24h DWORD PlayCont
- 28h DWORD RecordBlock
- 2Ch DWORD RecordCont
- 30h DWORD PauseIO
- 34h DWORD ResumeIO
- 38h DWORD StopIO
- 3Ch DWORD WavePrepare
- 40h DWORD WaveRegister
- 44h DWORD GetLastError
- 01h unsupported feature/function
- 02h bad sample rate
- 03h bad block length
- 04h bad block address
- 05h app. missed an IRQ
- 06h don't understand the PCM size/format
- 80h-.. vendors specific errors
- 48h DWORD TimerTick
- 4Ch DWORD ApplPSyncCB: CallBack: play filled in by the app
- 50h DWORD ApplRSyncCB: CallBack: rec filled in by the app
- SeeAlso: #0097,#0101
-
- (Table 0094)
- Values for type of compression:
- 01h IMA play
- 02h ALAW play
- 03h ULAW play
- 11h IMA record
- 12h ALAW record
- 13h ULAW record
-
- Format of MIDI Info Structure:
- Offset Size Description (Table 0095)
- 00h 4 BYTEs name of the structure ("MIDI")
- 04h DWORD structure length
- 08h DWORD driver software version [00000003h]
- 0Ch 32 BYTEs vendor name, etc. (ASCIZ string)
- 2Ch 32 BYTEs vendor product name
- 4Ch 32 BYTEs vendor chip/hardware description
- 6Ch BYTE installed board number
- 6Dh 3 BYTEs unused data
- 70h 14 BYTEs the patch library file name [OPL2.BNK 00..]
- 7Eh DWORD feature bits (see #0096)
- 80h WORD user determined preference field
- 82h WORD memory required for driver use
- 84h WORD # of timer tick callbacks per second
- 86h WORD max # of tones (voices, partials)
- SeeAlso: #0089,#0097,#0099
-
- Bitfields for MIDI feature bits:
- Bit(s) Description (Table 0096)
- 0-3 reserved for GM extensions
- 4 Transmitter/Receiver only
- 5 Patches preloaded
- 6 MIDI receive has time stamp
- 8 MIDI interrupt driven input supported
- 9 MIDI polled input supported
- 10 MIDI remote patches supported
-
- Format of MIDI Service structure:
- Offset Size Description (Table 0097)
- 00h 4 BYTEs name of the structure ("MIDS")
- 04h DWORD structure length
- 08h 16 WORDs patches loaded table bit field
- 28h 16 BYTEs for future expansion
- ---entry points (details???)---
- 38h DWORD device check
- 11h return available tones
- 12h return TRUE/FALSE if patch is understood
- 13h set preference
- 14h allow/disallow voice stealing
- 15h get FIFO sizes
- 16h get DMA,IRQ
- 17h get IO address
- 18h get mem address
- 19h get mem free
- 80h-.. vendors can add DevChks above 0x80
- 3Ch DWORD global reset
- 40h DWORD MIDI msg
- 44h DWORD poll MIDI
- 48h DWORD preload patch
- 4Ch DWORD unload patch
- 50h DWORD timer tick
- 54h DWORD get last error
- 01h unsupported feature/function
- 02h unknown patch type (see #0098)
- 03h all tones are used
- 04h messages are out of sync
- 05h an incoming patch was incomplete
- 06h an incoming patch couldn't be stored
- 07h had to drop an incoming byte
- 08h driver is failing a patch download
- 80h-.. vendors specific errors
- 58h DWORD Patch Block free callback
- 5Ch DWORD MIDI byte avail. callback
- SeeAlso: #0093,#0101
-
- (Table 0098)
- Values for MIDI Registered Patch Types:
- 10h OPL2
- 11h OPL3
-
- Format of Volume Info Structure:
- Offset Size Description (Table 0099)
- 00h 4 BYTEs name of the structure ("VOLI")
- 04h DWORD structure length (00000092h)
- 08h DWORD driver software version [00000001h]
- 0Ch 32 BYTEs vendor name, etc. (ASCIZ string)
- 2Ch 32 BYTEs vendor product name
- 4Ch 32 BYTEs vendor chip/hardware description
- 6Ch BYTE installed board number (0 for 1st/only board)
- 6Dh 3 BYTEs unused data (0)
- 70h 24 BYTEs text name of the mixer channel
- 88h DWORD features bits (see #0100)
- 8Ch WORD minimum volume setting
- 8Eh WORD maximum volume setting
- 90h WORD attenuation/gain crossover
- SeeAlso: #0089,#0101
-
- Bitfields for Volume feature bits:
- Bit(s) Description (Table 0100)
- 0 Stereo Volume control available
- 2 Low Pass Filter is available
- 3 High Pass Filter is available
- 4 Parametric Tone Control is available
- 5 selectable output paths
- 8 Azimuth Field positioning supported
- 9 Phi Field positioning supported
- 10-30 unused???
- 31 Master Volume device
-
- Format of Volume Services Structure:
- Offset Size Description (Table 0101)
- 00h 4 BYTEs name of the structure ("VOLS")
- 04h DWORD structure length (00000038h)
- 08h 16 BYTEs 16 bytes for future expansion (0)
- ---entry points (details???)---
- 18h DWORD device check
- 0011h filter range
- 0012h filter setting
- 0013h filter current
- 0014h tone range
- 0015h tone setting
- 0016h tone current
- 0017h path
- 0018h get IO address
- 0080h-.. vendors can add DevChks above 0x80
- 1Ch DWORD set vol to an absolute setting
- 01h User master volume setting
- 02h application master volume setting
- 20h DWORD set 3D volume
- 24h DWORD tone control
- 28h DWORD filter control
- 2Ch DWORD output path
- 30h DWORD reset channel
- 34h DWORD get last error
- 01h unsupported feature/function
- 02h out of range parameter value
- 80h+ vendor-specific errors
- SeeAlso: #0093,#0097
- --------s-104F13BX0003-----------------------
- INT 10 - VESA VBE/AI (Audio Interface) - OPEN DEVICE
- AX = 4F13h
- BX = 0003h
- CX = handle
- DX = API set (16/32-bit)
- SI = segment ???
- Return: AL = 4Fh if function supported
- AH = status
- 00h successful
- SI:CX -> memory ???
- 01h failed
- SeeAlso: AX=4F13h/BX=0000h,AX=4F13h/BX=0002h,AX=4F13h/BX=0004h
- --------s-104F13BX0004-----------------------
- INT 10 - VESA VBE/AI (Audio Interface) - CLOSE DEVICE
- AX = 4F13h
- BX = 0004h
- CX = handle
- Return: AL = 4Fh if function supported
- AH = status
- 00h successful
- 01h failed
- SeeAlso: AX=4F13h/BX=0000h,AX=4F13h/BX=0003h,AX=4F13h/BX=0005h
- --------s-104F13BX0005-----------------------
- INT 10 - VESA VBE/AI (Audio Interface) - UNINSTALL DRIVER
- AX = 4F13h
- BX = 0005h
- Return: AL = 4Fh if function supported
- AH = status
- 00h successful
- 01h failed
- SeeAlso: AX=4F13h/BX=0000h,AX=4F13h/BX=0006h
- --------s-104F13BX0006-----------------------
- INT 10 - VESA VBE/AI (Audio Interface) - DRIVER CHAIN/UNCHAIN
- AX = 4F13h
- BX = 0006h
- Return: AL = 4Fh if function supported
- AH = status
- 00h successful
- 01h failed
- SeeAlso: AX=4F13h/BX=0000h,AX=4F13h/BX=0005h
- ----------104F14-----------------------------
- INT 10 - VESA OEM Extensions - API
- AX = 4F14h
- BL = function
- 00h installation check / get capabilities
- other registers vary by function
- Return: varies by function
- Note: this function is provided for OEMs to implement system-specific
- functionality in a VESA-compatible manner
- ----------104F14-----------------------------
- INT 10 - VESA OEM Extensions - Matrox Millenium (BIOS v2.1)
- AX = 4F14h
- BL = function
- 00h installation check / get capabilities
- ES:DI -> 256-byte buffer for Matrox-specific information
- (see #0102)
- Return: ES:DI buffer filled
- 01h ???
- BH = ???
- 02h ???
- BH = ??? (bit flags?)
- 03h ???
- SI = index of ???
- Return: CL = value of ???
- 04h ???
- DX = ???
- Return: CL,EDX destroyed
- else
- Return: AX = FFFFh
- Return: AL = 4Fh if function supported
- AH = status
- 00h successful
- 01h failed
- Note: this function is provided for OEMs to implement system-specific
- functionality in a VESA-compatible manner
-
- Format of Matrox-specific VESA extensions information:
- Offset Size Description (Table 0102)
- 00h 7 BYTEs signature "VBE/MGA"
- 07h 12 BYTEs ??? (01h 01h 00h 00h 00h 00h 00h 00h 00h 07h 01h 02h)
- 13h DWORD ->
- 17h DWORD ->
- 1Bh DWORD ->
- 1Fh DWORD ->
- 23h DWORD ->
- 27h DWORD ->
- 2Bh WORD ???
- 2Dh DWORD ???
- 31h DWORD ???
- 35h WORD ???
- 37h 201 BYTEs unused??? (cleared to 00h)
- --------V-104F15BL00-------------------------
- INT 10 - VESA VBE/DC (Display Data Channel) - INSTALLATION CHECK / CAPABILITIES
- AX = 4F15h
- BL = 00h
- ???
- Return: AL = 4Fh if function supported
- AH = status
- 00h successful
- ???
- 01h failed
- ???
- SeeAlso: AX=4F15h/BL=01h,AX=4F15h/BL=02h
- --------V-104F15BL01-------------------------
- INT 10 - VESA VBE/DC (Display Data Channel) - READ EDID
- AX = 4F15h
- BL = 01h
- CX = 0000h
- DX = 0000h
- ES:DI -> 128-byte buffer for EDID record (see #0103)
- Return: AL = 4Fh if function supported
- AH = status
- 00h successful
- ES:DI buffer filled
- 01h failed
- SeeAlso: AX=4F15h/BL=00h,AX=4F15h/BL=02h
-
- Format of VESA EDID record:
- Offset Size Description (Table 0103)
- 00h 8 BYTEs padding (all FFh, or 00h FFh..FFh 00h)
- 08h WORD manufacturer ID (see #0109)
- bits 6-2: first letter (0=A, 1=B, etc.)
- bits 11-7: second letter
- bits 15-12: third letter
- 0Ah WORD EDID ID code -- identifies monitor model
- 0Ch DWORD serial number or FFFFFFFFh
- 10h BYTE week number of manufacture
- 11h BYTE manufacture year - 1990
- 12h BYTE EDID version
- 13h BYTE EDID revision
- 14h BYTE video input type (see #0105)
- 15h BYTE maximum horizontal size in cm
- 16h BYTE maximum vertical size in cm
- 17h BYTE gamma factor (gamma = 1.0 + factor/100, so max = 3.55)
- 18h BYTE DPMS flags (see #0104)
- 19h BYTE chroma information: green X'/Y' and red X'/Y'
- 1Ah BYTE chroma information: white X'/Y' and blue X'/Y'
- 1Bh BYTE chroma information: red Y
- 1Ch BYTE chroma information: red X
- 1Dh BYTE chroma information: green Y
- 1Eh BYTE chroma information: green X
- 1Fh BYTE chroma information: blue Y
- 20h BYTE chroma information: blue X
- 21h BYTE chroma information: white Y
- 22h BYTE chroma information: white X
- 23h BYTE established timings 1 (see #0106)
- 24h BYTE established timings 2 (see #0107)
- 25h BYTE manufacturer's reserved timing or 00h for none
- 26h 8 WORDs standard timing identification
- resolution (low byte) and vertical frequency (high byte) for
- each of eight modes (see #0108)
- X resolution = (lowbyte + 31) * 8
- 36h 72 BYTEs detail timing description
- 7Eh WORD checksum
-
- Bitfields for DPMS EDID flags:
- Bit(s) Description (Table 0104)
- 2-0 ???
- 3 display type
- =0 non-RGB multicolor
- =1 RGB color
- 4 ???
- 5 Active Off supported
- 6 Suspend supported
- 7 Standby supported
- SeeAlso: #0103
-
- Bitfields for DPMS input signal type:
- Bit(s) Description (Table 0105)
- 0 separate sync
- 1 composite sync
- 2 sync on green
- 4-3 ???
- 6-5 voltage level
- 00 0.700V/0.300V (1.00 Vp-p)
- 01 0.714V/0.286V
- 10 0.100V/0.400V
- 11 reserved
- 7 =1 digital signal, =0 analog
- SeeAlso: #0103
-
- Bitfields for DPMS established timings 1:
- Bit(s) Description (Table 0106)
- 0 720x400 @ 70 Hz (VGA 640x400, IBM)
- 1 720x400 @ 88 Hz (XGA2)
- 2 640x480 @ 60 Hz (VGA)
- 3 640x480 @ 67 Hz (Mac II, Apple)
- 4 640x480 @ 72 Hz (VESA)
- 5 640x480 @ 75 Hz (VESA)
- 6 800x600 @ 56 Hz (VESA)
- 7 800x600 @ 60 Hz (VESA)
- SeeAlso: #0103,#0107
-
- Bitfields for DPMS established timings 2:
- Bit(s) Description (Table 0107)
- 0 800x600 @ 72 Hz (VESA)
- 1 800x600 @ 75 Hz (VESA)
- 2 832x624 @ 75 Hz (Mac II)
- 3 1024x768 @ 87 Hz interlaced (8514A)
- 4 1024x768 @ 60 Hz (VESA)
- 5 1024x768 @ 70 Hz (VESA)
- 6 1024x768 @ 75 Hz (VESA)
- 7 1280x1024 @ 75 Hz (VESA)
- SeeAlso: #0103,#0106
-
- Bitfields for DPMS standard timing information:
- Bit(s) Description (Table 0108)
- 5-0 vertical refresh frequency - 60 (Hz)
- 7-6 aspect ratio (Y resolution = X resolution * aspect ratio)
- 00 ???
- 01 0.75
- 10 0.8
- 11 0.5625
- SeeAlso: #0103
-
- (Table 0109)
- Values for manufacturer ID:
- "AST" AST Research (see #0110)
- "HWP" Hewlett-Packard
- !!!
- "IVM" Idek Iiayama North America, Inc.
- "MIR" miro Computer Products AG
- "OQI" Optiquest
- "CSC" ViewSonic Corporation
- SeeAlso: #0103
-
- (Table 0110)
- Values for AST monitor EDID:
- 8001h ASTVision 4V
- 8002h ASTVision 4I
- 8003h ASTVision 4N
- 8004h ASTVision 4L
- 8005h ASTVision 5L
- 8006h ASTVision 7L
- 8007h ASTVision 7H
- 8008h ASTVision 20H
- 8009h AST Sabre
- 800Ah ASTVision 5V
- SeeAlso: #0109,#0103
- --------V-104F15BL02-------------------------
- INT 10 - VESA VBE/DC (Display Data Channel) - READ VDIF
- AX = 4F15h
- BL = 02h
- ???
- Return: AL = 4Fh if function supported
- AH = status
- 00h successful
- ???
- 01h failed
- SeeAlso: AX=4F15h/BL=00h,AX=4F15h/BL=01h
- --------V-104F16-----------------------------
- INT 10 - VESA VBE/GC (Graphics System Configuration) - API
- AX = 4F16h
- BL = function
- 00h installation check / get capabilities
- other registers vary by function
- Return: varies by function
- --------V-104F17-----------------------------
- INT 10 - VESA VBE/AF (Accelerator Functions) - API
- AX = 4F17h
- BL = function
- 00h installation check / get capabilities
- other registers vary by function
- Return: varies by function
- --------V-104F4D-----------------------------
- INT 10 - VESA - VIDEO CURSOR INTERFACE REQUEST
- AX = 4F4Dh
- BX = number of bytes available for VCI use
- DS:0000h -> buffer for VCI
- ES:DI -> VCI driver callback function
- Return: AL = 4Fh if supported
- AH = status
- 00h successful
- BX = number of bytes used by VCI
- ES:DI -> VCI request handler
- 01h failed
- Desc: allow the VESA BIOS Extensions to cooperate with a pointing-device
- (typically mouse) driver
- SeeAlso: AX=4F12h
- --------V-104F70-----------------------------
- INT 10 - Avance Logic - GET ADAPTER INFORMATION
- AX = 4F70h
- Return: AX = 004Fh if successful
- BL = board information (see #0111)
- BH = board type???
- 00h on ALG2101
- FFh otherwise
- SeeAlso: AX=4F00h
-
- Bitfields for Avance Logic board information:
- Bit(s) Description (Table 0111)
- 0-1 video RAM size
- 00 256K
- 01 512K
- 10 1M
- 11 2M
- 2 ???
- 3 slot size???
- =0 8-bit slot
- =1 16-bit slot
- 4 unused
- 5 set on ALG2228/AL2301
- 6-7 unused
- --------V-104FDD-----------------------------
- INT 10 - ATI M64VBE.COM - GET RESIDENT SEGMENT
- AX = 4FDDh
- Return: AX = CS of resident code
- Program: M64VBE is a VESA VBE 2.0 driver TSR for ATI's Mach64 video chip
- SeeAlso: AX=4FFFh/BX=364Dh"M64VBE",INT 60"M64VBE"
- --------V-104FFF-----------------------------
- INT 10 - VESA SuperVGA BIOS - Everex - TURN VESA ON/OFF
- AX = 4FFFh
- DL = new state (00h off, 01h on)
- Return: AX = 0000h if successful
- --------V-104FFF-----------------------------
- INT 10 - Diamond Stealth 24 - SET/RESET DUAL DISPLAY MODE
- AX = 4FFFh
- BX = dual display mode
- 00h reset
- 01h set dual display, 32KB VGA test
- 02h set dual display, 64KB VGA test
- Return: AX = 4F00h if successful
- BX = number of scanlines off screen for test mode
- --------V-104FFFBX364D-----------------------
- INT 10 - ATI M64VBE.COM - UNINSTALL
- AX = 4FFFh
- BX = 364Dh ('6M')
- CX = 5634h ('V4')
- Return: AX,DX,DS,ES destroyed
- Program: M64VBE is a VESA VBE 2.0 driver TSR for ATI's Mach64 video chip
- SeeAlso: AX=4FDDh"M64VBE",INT 60"M64VBE"
- --------U-1050-------------------------------
- INT 10 - SCROLOCK.COM - INSTALLATION CHECK
- AH = 50h
- Return: BX = 1954h if installed
- AL = 00h if inactive, nonzero if active
- Program: SCROLOCK is a utility supplied with System Enhancement Associates'
- ARC archiver
- SeeAlso: AH=51h
- --------J-105000-----------------------------
- INT 10 - VIDEO - AX PC - SET SCREEN COUNTRY CODE
- AX = 5000h
- BX = country code
- 0001h USA (English), 0051h Japan
- Return: AL = status
- 00h successful
- 01h bad country code
- 02h other error
- SeeAlso: AX=5001h,INT 16/AX=5000h
- --------J-105001-----------------------------
- INT 10 - VIDEO - AX PC - GET SCREEN COUNTRY CODE
- AX = 5001h
- Return: AL = status
- 00h successful
- BX = country code
- 02h error
- SeeAlso: AH=00h,AX=5000h,INT 16/AX=5001h,INT 21/AH=38h
- --------V-105049-----------------------------
- INT 10 - VIDEO - SCREENR v1.55+ - API
- AX = 5049h ('PI')
- BX = function
- 0000h installation check
- 0001h lock mode
- 0002h unlock mode
- 0003h lock palette
- 0004h unlock palette
- Return: AX = 0000h if installed
- BX = TSR version (BH=major,BL=minor)
- CL = mode locking status
- 00h mode not locked
- 01h mode locked: INT 10/AH=00h disabled
- CH = palette locking status
- 00h palette not locked
- 01h palette locked, the following functions are disabled:
- AX=1000h, AX=1001h, AX=1002h, AX=1010h, AX=1012h
- Program: SCREENR is a TSR supplied with Patrick Ibbetson's SCREEN display
- utility.
- Index: installation check;SCREENR
- --------U-1051-------------------------------
- INT 10 - SCROLOCK.COM - ENABLE/DISABLE
- AH = 51h
- AL = state
- 00h disable
- nonzero enable
- Return: nothing
- Program: SCROLOCK is a utility supplied with System Enhancement Associates'
- ARC file archiver
- SeeAlso: AH=50h"SCROLOCK"
- --------J-105100-----------------------------
- INT 10 - VIDEO - AX PC - REGISTER EXTERNAL CHARACTER
- AX = 5100h
- BH = character width in bits (10h)
- BL = character height (10h)
- DX = character code (DH = F0h-F3h, DL=40h-7Eh,80h-FCh)
- ES:BP -> character bitmap
- Return: AL = status (00h successful, 01h failed)
- SeeAlso: AX=5101h,INT 1F"SYSTEM DATA"
- --------J-105101-----------------------------
- INT 10 - VIDEO - AX PC - READ CHARACTER
- AX = 5101h
- BH = character width in bits
- BL = character height
- DX = character code (DH = 00h if 8-bit character)
- ES:BP -> buffer for character bitmap
- Return: AL = status (00h successful, 01h failed)
- SeeAlso: AH=09h,AX=5100h
- --------J-105200-----------------------------
- INT 10 - VIDEO - AX PC - SET VIRTUAL TEXT RAM BUFFER
- AX = 5200h
- BX = segment of buffer
- Return: nothing
- SeeAlso: AX=5201h
- --------J-105201-----------------------------
- INT 10 - VIDEO - AX PC - GET VIRTUAL TEXT RAM BUFFER
- AX = 5201h
- Return: BX = segment of buffer or 0000h if failed
- SeeAlso: AX=8300h,AH=FEh
- ----------1053-------------------------------
- INT 10 - Show Partner F/X v3.6 - START PRESENTATION
- AH = 53h
- DS:DX -> ASCIZ name of presentation file (no path, extension forced to
- .PR2)
- Return: ???
- SeeAlso: AH=55h
- ----------1055-------------------------------
- INT 10 - Show Partner F/X v3.6 - UNINSTALL
- AH = 55h
- Return: FXSHOW.EXE removed from memory
- SeeAlso: AH=53h
- --------V-105555-----------------------------
- INT 10 - VIDEO - ATI EGA/VGA Wonder Super Switch - INSTALLATION CHECK
- AX = 5555h
- Return: AX = AAAAh if installed
- BX:CX -> ??? routine in SMS.COM resident portion
- -> data area (see #0112) in VCONFIG
- Program: Super Switch (SMS.COM) is a video mode switch program supplied with
- ATI EGA Wonder. It also maps video mode 08h to 27h or 23h.
- SeeAlso: INT 10/AH=00h,INT 14/AX=AA01h,INT 2F/AX=6400h
- Index: screen saver;ATI Wonder SMS.COM
-
- Format of ATI Super Switch data area:
- Offset Size Description (Table 0112)
- 00h DWORD original INT 09 vector
- 04h DWORD original INT 10 vector
- 08h DWORD original INT 1C vector
- 0Ch WORD screen saver state, 0=off, 1=on
- 0Eh WORD blanking interval in clock ticks
- --------V-105F00-----------------------------
- INT 10 - Chips & Technologies Extended BIOS - RETURN CHIP INFORMATION
- AX = 5F00h
- Return: AL = 5Fh function supported
- BL = chip type (see #0113)
- BH = video memory size (00h 256KB, 01h 512KB, 02h 1MB)
- CX = miscellaneous information (see #0114)
- SeeAlso: AX=5F01h
-
- Bitfields for Chips&Technologies chip type:
- Bit(s) Description (Table 0113)
- 7-4 chip type
- 0000: 82c451
- 0001: 82c452
- 0010: 82c455
- 0011: 82c453
- 0101: 82c456
- 0110: 82c457
- 0111: F65520
- 1000: F65530
- 1100: F65535/F65545 ???
- 1101: F65540
- 3-0 revision number
-
- Bitfields for Chips&Technologies miscellaneous information:
- Bit(s) Description (Table 0114)
- 0 DAC size (0=6-bit, 1=8-bit)
- 1 system type (0=PC/AT, 1=PS/2)
- 2 extended text modes supported by BIOS
- 3 reserved
- 4 extended graphics modes supported by BIOS
- 5 reserved
- 6 BIOS supports graphics cursor
- 7 BIOS supports anti-aliased font
- 8 BIOS supports pre-programmed emulation
- 9 BIOS supports auto emulation
- 10 BIOS supports variable mode set at cold boot
- 11 BIOS supports variable mode set on warm boot
- 12 BIOS supports emulation mode set at cold boot
- 13 BIOS supports emulation mode set on warm boot
- 14-15 reserved
- --------V-105F00-----------------------------
- INT 10 - VIDEO - Realtek RTVGA - RETURN CHIP VERSION
- AX = 5F00h
- Return: AH = 00h, if successful
- AL = chip version (the same value that VTEST.EXE reads)
- 00h RTG3103???
- 01h RTG31030/RTG3105
- 02h RTG3106???
- 3Fh non-Realtek chip
- BUG: in v3.C10, AX=5F00h on return due to improper stack restoration code
- SeeAlso: AX=5F01h"RTVGA"
- --------V-105F01-----------------------------
- INT 10 - Chips & Technologies Extended BIOS - SET PREPROGRAMMED EMULATION
- AX = 5F01h
- BL = emulation type (see #0115)
- Return: AL = 5Fh if function supported
- AH = status
- 00h unsuccessful
- 01h successful
- SeeAlso: AX=5F00h,AX=5F02h,AH=FFh"Oak"
-
- (Table 0115)
- Values for Chips&Technologies emulation type:
- 00h,01h reserved
- 02h CGA
- 03h MDA
- 04h Hercules
- 05h EGA
- 06h VGA
- --------V-105F01-----------------------------
- INT 10 - VIDEO - Realtek RTVGA - WRITE RTVGA BIOS STRING TO DESTINATION
- AX = 5F01h
- ES:DI -> zero-filled buffer for BIOS ID string
- Return: AH = 00h if successful
- ES:DI -> ASCII signature "REALTEK VGA BIOS Version 3C.10"
- BUG: in v3.C10, AX=5F01h on return due to improper stack restoration code
- SeeAlso: AX=5F00h"RTVGA",AX=5F02h"RTVGA"
- --------V-105F02-----------------------------
- INT 10 - Chips & Technologies Extended BIOS - AUTO EMULATION CONTROL
- AX = 5F02h
- BL = new state of autmatic emulation (00h enabled, 01h disabled)
- Return: AL = 5Fh if function supported
- AH = status
- 00h unsuccessful
- 01h successful
- SeeAlso: AX=5F01h,AX=5F03h
- --------V-105F02-----------------------------
- INT 10 - VIDEO - Realtek RTVGA - RETURN RTVGA ON-BOARD MEMORY SIZE
- AX = 5F02h
- Return: AH = 00h, if successful
- AL = on-board memory size
- (00h = 256K, 01h = 512K, 02h = 768K, 03h = 1024K)
- BUG: in v3.C10, AX=5F02h on return due to improper stack restoration code
- SeeAlso: AX=5F01h"RTVGA",AX=5F03h"RTVGA"
- --------V-105F03-----------------------------
- INT 10 - VIDEO - Realtek RTVGA - SET ???
- AX = 5F03h
- BL = 0-3 (???)
- Return: AH = 00h if successful
- BUG: in v3.C10, AX=5F03h on return due to improper stack restoration code
- SeeAlso: AX=5F02h"RTVGA"
- --------V-105F03BL00-------------------------
- INT 10 - Chips & Technologies Extended BIOS - SET POWER-ON DISPLAY MODE
- AX = 5F03h
- BL = 00h
- CL = display mode
- CH = mode (see #0116)
- Return: AL = 5Fh if function supported
- AH = status
- 00h unsuccessful
- 01h successful
- SeeAlso: AX=5F02h,AX=5F03h/BL=01h"Chips",AX=5F90h
-
- Bitfields for Chips&Technologies display mode:
- Bit(s) Description (Table 0116)
- 1-0 scanlines (00 = 200, 01 = 350, 10 = 400)
- 7 persistence (0 reset on next boot, 1 until changed)
- --------V-105F03BL01-------------------------
- INT 10 - Chips & Technologies Extended BIOS - SET POWER-ON EMULATION MODE
- AX = 5F03h
- BL = 01h
- CL = emulation mode (see #0116)
- CH = permanence
- bit 7 persistence (0 reset on next boot, 1 until changed)
- Return: AL = 5Fh if function supported
- AH = status
- 00h unsuccessful
- 01h successful
- SeeAlso: AX=5F02h,AX=5F03h/BL=00h"Chips",AX=5F90h
- --------V-105F10-----------------------------
- INT 10 - Chips & Technologies Extended BIOS - ???
- AX = 5F10h
- DX = ???
- Return: DX = ???
- --------V-105F50-----------------------------
- INT 10 - Chips & Technologies Extended BIOS - GET LAPTOP DISPLAY STATUS
- AX = 5F50h
- Return: DL = display status (see #0117)
- Note: this call can be used on Toshiba laptops since ~1995 instead of
- INT 42/AX=7503h which is no longer supported with the F655xx chips
- SeeAlso: INT 42/AX=7503h
-
- Bitfields for display status:
- Bit(s) Description (Table 0117)
- 7-4 always 0 ???
- 3 1: both displays active (bit 1 also set)
- 2 1: normal (monochrome display only), 0: inverse or color
- 1 1: internal display active, 0: external only
- 0 always set ???
- --------V-105F51-----------------------------
- INT 10 - Chips & Technologies Extended BIOS - SET DISPLAY STATUS ???
- AX = 5F51h
- BX = ???
- Return: nothing
- --------V-105F5EBL00-------------------------
- INT 10 - Chips & Technologies Extended BIOS - SET ???
- AX = 5F5Eh
- BL = 00h or 01h
- Return: nothing
- --------V-105F90-----------------------------
- INT 10 - Chips & Technologies Extended BIOS - GET SUPERVGA STATE BUFFER SIZE
- AX = 5F90h
- CX = state mask (see #0118)
- Return: AL = 5Fh if function supported
- BX = number of 64-byte blocks required
- SeeAlso: AH=1Ch,AX=5F03h,AX=5F91h,AX=5F92h
-
- Bitfields for Chips&Technologies state mask:
- Bit(s) Description (Table 0118)
- 0 video hardware
- 1 BIOS data state
- 2 DAC state
- 15 type (0 all state info, 1 SuperVGA state only)
- --------V-105F91-----------------------------
- INT 10 - Chips & Technologies Extended BIOS - SAVE SUPERVGA STATE
- AX = 5F91h
- CX = state mask (see #0118)
- ES:BX -> save buffer
- Return: AL = 5Fh if function supported
- buffer at ES:BX filled
- SeeAlso: AH=1Ch,AX=5F03h,AX=5F90h,AX=5F92h
- --------V-105F92-----------------------------
- INT 10 - Chips & Technologies Extended BIOS - RESTORE SUPERVGA STATE
- AX = 5F92h
- CX = state mask (see #0118)
- ES:BX -> previously-filled save buffer
- Return: AL = 5Fh if function supported
- SeeAlso: AH=1Ch,AX=5F03h,AX=5F90h,AX=5F92h
- --------V-1060------------------------------------
- INT 10 - HUNTER 16 - SET GRAPHICS FONT
- AH = 60h
- AL = new font
- bit 7 output characters in reverse video
- bits 0-6 font number (see #0132 at AH=77h)
- Return: BH = cell width
- BL = cell height
- Desc: select the font to use for output in mode 6; this can be used to mix
- fonts on the screen
- Note: the Husky Hunter 16 is an 8088-based ruggedized laptop. Other family
- members are the Husky Hunter, Husky Hunter 16/80, and Husky Hawk.
- SeeAlso: AH=04h"HUNTER",AH=73h"HUNTER",AH=77h"HUNTER"
- --------V-1061------------------------------------
- INT 10 - HUNTER 16 - MOVE CURSOR TO GRAPHICS CO-ORDINATES
- AH = 61h
- CX = column
- DX = row
- Return: nothing
- Note: this function is only valid in graphics modes
- SeeAlso: AH=62h
- --------V-1062------------------------------------
- INT 10 - HUNTER 16 - GET CURSOR POSITION IN GRAPHICS CO-ORDINATES
- AH = 62h
- Return: CX = column
- DX = row
- Note: this function is only valid in graphics modes
- SeeAlso: AH=61h
- --------V-1063------------------------------------
- INT 10 - HUNTER 16 - SET CONTRAST
- AH = 63h
- AL = contrast (0..127)
- Return: nothing
- Desc: set the LCD screen contrast to improve visibility
- SeeAlso: AH=64h,AH=75h
- --------V-1064------------------------------------
- INT 10 - HUNTER 16 - SET BACKLIGHT LEVEL
- AH = 64h
- AL = level (0..15)
- Return: nothing
- Desc: set the LCD backlight level to improve visibility in bad lighting
- SeeAlso: AH=63h,AH=65h,AH=74h,AH=78h"HUNTER",INT 15/AH=74h
- --------V-106500----------------------------------
- INT 10 - HUNTER 16 - GET BACKLIGHT TIMEOUT
- AX = 6500h
- Return: BX = timeout in seconds (0-300)
- Desc: returns the time after which the backlight will turn off
- SeeAlso: AH=63h,AH=64h,AX=6501h,INT 15/AH=74h
- --------V-106501----------------------------------
- INT 10 - HUNTER 16 - SET BACKLIGHT TIMEOUT
- AX = 6501h
- BX = timeout in seconds (0-300)
- Return: nothing
- Desc: set the idle time after which the backlight will turn off
- SeeAlso: AH=64h,AX=6500h
- --------V-1066------------------------------------
- INT 10 - HUNTER 16 - SPLIT DISPLAY
- AH = 66h
- AL = control bits (see #0119)
- BH = top row of lower section of LCD (0..7)
- BL = top row of lower section of the virtual screen (0..24)
- Return: nothing
- Desc: split the LCD screen horizontally into two parts; each part may be
- individually scrollable or fixed.
- Note: the Hunter 16 has a 240x64 LCD display which serves as a window into
- a 640x200 virtual screen
-
- Bitfields for HUNTER 16 control bits:
- Bit(s) Description (Table 0119)
- 0-1 01: no split, 10: allow split
- 2 allow scrolling the upper part
- 3 allow scrolling the lower part
- --------V-106A00BX0000-----------------------
- INT 10 - Direct Graphics Interface Standard (DGIS) - INQUIRE AVAILABLE DEVICES
- AX = 6A00h
- BX = 0000h
- CX = 0000h
- DX = buffer length (may be 0)
- ES:DI -> buffer
- Return: BX = number of bytes stored in buffer
- CX = bytes required for all descriptions (0 if no DGIS)
- Note: buffer contains descriptions and addresses of DGIS-compatible
- display(s) and printer(s)
- SeeAlso: AX=6A02h
- --------V-106A01CX0000-----------------------
- INT 10 - Direct Graphics Interface Standard (DGIS) - REDIRECT CHARACTER OUTPUT
- AX = 6A01h
- CX = 0000h
- ES:DI = address of device to send INT 10 output to
- Return: CX = 0000h output could not be redirected
- else INT 10h output now routed to requested display
- SeeAlso: AX=6A02h
- --------V-106A02-----------------------------
- INT 10 - DGIS - INQUIRE INT 10 OUTPUT DEVICE
- AX = 6A02h
- ES:DI = 0000h:0000h
- Return: ES:DI = 0000h:0000h if current display is non-DGIS
- else address of the current DGIS INT 10 display
- SeeAlso: AX=6A00h,AX=6A01h
- --------V-106D74-----------------------------
- INT 10 - MTRFONTS - INSTALLATION CHECK
- AX = 6D74h ('mt')
- DS:0104h = signature "MtRfOnTs"
- Return: AX = 4D54h ('MT') if installed
- ES = PSP segment of resident code
- Program: MTRFONTS is a shareware TSR (part of the MTR package) by Mechon Mamre
- which provides Hebrew screen fonts
- SeeAlso: INT 16/AX=6D74h"MTRTSR"
- --------V-106E00-----------------------------
- INT 10 - Paradise VGA internal - GET ???
- AX = 6E00h
- Return: BX = 5744h ('WD') if supported
- DH:AH:AL = last three ASCII digits of ROM serial number
- CL = ???
- CH = ???
- SeeAlso: AX=6E04h,AX=6E05h
- --------V-106E04-----------------------------
- INT 10 - Paradise VGA internal - GET SCREEN SIZE AND ???
- AX = 6E04h
- Return: BX = screen width (columns)
- CX = screen height (lines)
- AH = ??? (05h or FFh)
- AL = ??? (04h or video mode)
- SeeAlso: AX=6E00h,AX=6E05h
- --------V-106E05-----------------------------
- INT 10 - Paradise VGA internal - SET MODE
- AX = 6E05h
- BL = mode
- Return: nothing
- Note: like AH=00h, AL=BL.
- SeeAlso: AH=00h,AX=6E00h,AX=6E04h,AX=6F05h
- --------V-106F00-----------------------------
- INT 10 - HP Vectra EX-BIOS - INSTALLATION CHECK
- AX = 6F00h
- BX <> 4850h (usually set to 0000h for simplicity)
- Return: BX = 4850h ('HP') indicates HP Extended BIOS video functions present
- AX destroyed
- SeeAlso: AX=6F00h"Video7",AX=6F01h,AX=6F02h,AX=6F03h,AX=6F04h,AX=6F05h
- SeeAlso: INT 14/AX=6F00h,INT 16/AX=6F00h,INT 17/AX=6F00h,INT 33/AX=6F00h
- --------V-106F00BX0000-----------------------
- INT 10 - VIDEO - Video7 VGA,VEGA VGA - INSTALLATION CHECK
- AX = 6F00h
- BX = 0000h
- Return: BX = 5637h ('V7') indicates Video7 VGA/VEGA VGA extensions are present
- SeeAlso: AX=6F01h,AX=6F02h,AX=6F03h,AX=6F04h,AX=6F05h
- --------V-106F01-----------------------------
- INT 10 - VIDEO - Video7 VGA,VEGA VGA,HP EX-BIOS - GET MONITOR INFO
- AX = 6F01h
- Return: AL = monitor type code (HP,VEGA VGA only) (see #0120)
- AH = status register information (see #0121)
- CL = current value of Extended Control register (HP Ext BIOS, and only
- if AL=41h) (see #0122)
- Notes: bits 0-3 are the same as the EGA/VGA status register bits 0-3
- supported by original HP Vectra AT and by ES/QS/RS series Vectras
-
- (Table 0120)
- Values for monitor type code (HP Extended BIOS):
- 00h non-HP card with ROM and possibly its own INT 10h driver
- 41h MultiMode video display adapter
- 42h-44h reserved
- 45h industry standard monochrome display adapter
- 46h industry standard color display adapter
- 51h reserved
-
- Bitfields for status register information:
- Bit(s) Description (Table 0121)
- 0 display enable
- 0 = display enabled
- 1 = vertical or horizontal retrace in progress
- 1 light pen flip flop set
- 2 light pen switch activated
- 3 vertical sync
- 4 monitor resolution
- 0 = high resolution (>200 lines)
- 1 = low resolution (<=200 lines)
- 5 display type (0 = color, 1 = monochrome)
- 6,7 diagnostic bits
- Note: bits 0-3 are the same as the EGA/VGA status register bits 0-3
- --------V-106F02-----------------------------
- INT 10 - HP Vectra EX-BIOS - SET MONITOR INFO
- AX = 6F02h
- BL = new value for extended control register (see #0122)
- Return: AX,BL destroyed
- Notes: this function is only valid when an HP MultiMode Video Display Adapter
- is installed
- the Extended Control register is at I/O address 3DDh
- SeeAlso: AX=6F01h,AX=6F03h
-
- Bitfields for HP Vectra extended control register:
- Bit(s) Description (Table 0122)
- 0 screen resolution (0 = 200 lines, 1 = 400 lines)
- 1 underline enable (if set, 'blue' of fg color = underline)
- 2 font (0 = Standard-8, 1 = HP-Roman-8)
- 3 memory disabled for CPU access
- 4 allow access to full 32K memory instead of wrapping at 16K
- 5 select second 16K page instead of first
- 6,7 unused
- --------V-106F03-----------------------------
- INT 10 - HP Vectra EX-BIOS - MODIFY MONITOR INFO
- AX = 6F03h
- BH = exclude mask (set bits are not modified)
- BL = new values for bits indicated by BH (see #0122)
- Return: AX destroyed
- Notes: this function is only valid when an HP MultiMode Video Display Adapter
- is installed
- supported by original HP Vectra AT and by ES/QS/RS series Vectras
- SeeAlso: AX=6F01h,AX=6F02h
- --------V-106F04-----------------------------
- INT 10 - VIDEO - Video7 VGA,VEGA VGA,HP Vectra - GET MODE AND SCREEN RESOLUTION
- AX = 6F04h
- Return: AL = current video mode (see #0123)
- BX = horizontal columns (text) or pixels (graphics)
- CX = vertical columns (text) or pixels (graphics)
- SeeAlso: AX=6F05h
- --------V-106F05-----------------------------
- INT 10 - VIDEO - Video7 VGA,VEGA EXTENDED EGA/VGA,HP Vectra - SET VIDEO MODE
- AX = 6F05h
- BL = mode (see #0123)
- Return: AX,BL destroyed
- Notes: also supported by the HP Vectra Extended BIOS on the original
- HP Vectra AT and by ES/QS/RS series Vectras
- on the HP Vectra, this function rather than AH=00h must be used to
- return to an IBM-standard mode after setting an HP-specified mode
- from 08h to 0Fh.
- SeeAlso: AH=00h,AX=0070h,AX=007Eh,AX=6F04h
-
- (Table 0123)
- Values for Video7/VEGA video mode:
- text/ text pixel pixel colors disply scrn system
- grph resol box resolution pages addr
- 00h-13h = standard IBM modes (see #0009 at AH=00h)
- 08h = T 80x27 . . mono . . HP MultiMode Video
- 09h = T 80x27 . . . . . HP MultiMode Video
- 0Ah = T 40x27 . . mono . . HP MultiMode Video
- 0Bh = T 40x27 . . . . . HP MultiMode Video
- 0Ch = reserved HP MultiMode Video
- 0Dh = G . . 640x400 . . . HP MultiMode Video
- 0Eh = G . . 320x400 . . . HP MultiMode Video
- 0Fh = G . . 320x400 . . . HP MultiMode Video
- 40h = T 80x43 8x8 . . . . Video7/VEGA VGA
- 41h = T 132x25 8x14 . . . . Video7/VEGA VGA
- 42h = T 132x43 8x8 . . . . Video7/VEGA VGA
- 43h = T 80x60 8x8 . . . . Video7/VEGA VGA
- 44h = T 100x60 8x8 . . . . Video7/VEGA VGA
- 45h = T 132x28 8x8 . . . . Video7/VEGA VGA
- 60h = G . . 752x410 16 . . Video7 VGA, VEGA VGA
- 61h = G . . 720x540 16 . . Video7 VGA, VEGA VGA
- = G . . 720x540 16 . . Northgate, Headland 1024i
- 62h = G . . 800x600 16 . . Video7 VGA, VEGA Ext EGA
- = G . . 800x600 16 . . Headland 1024i
- 63h = G . . 1024x768 2 . . Video7 VGA
- 64h = G . . 1024x768 4 . . Video7 VGA
- 65h = G . . 1024x768 16 . . Video7 VGA, VEGA Ext EGA
- = G . . 1024x768 16 . . Headland 1024i
- 66h = G . . 640x400 256 . . Video7 VGA, VEGA Ext VGA
- = G . . 640x400 256 . . Northgate, Headland 1024i
- 67h = G . . 640x480 256 . . Video7 VGA, VEGA Ext VGA
- = G . . 640x480 256 . . Headland 1024i
- 68h = G . . 720x540 256 . . Video7 VGA, VEGA Ext VGA
- = G . . 720x540 256 . . Headland 1024i
- 69h = G . . 800x600 256 . . Video7 VGA, VEGA Ext VGA
- = G . . 800x600 256 . . Headland 1024i
- 70h = G . . 752x410 16gray . . Video7 VGA, VEGA VGA
- 71h = G . . 720x540 16gray . . Video7 VGA, VEGA VGA
- 72h = G . . 800x600 16gray . . Video7 VGA
- 73h = G . . 1024x768 2gray . . Video7 VGA
- 74h = G . . 1024x768 4gray . . Video7 VGA
- 75h = G . . 1024x768 16gray . . Video7 VGA
- 76h = G . . 640x400 256gray . . Video7 VGA
- 77h = G . . 640x480 256gray . . Video7 VGA
- 78h = G . . 720x540 256gray . . Video7 VGA
- 79h = G . . 800x600 256gray . . (future)
- SeeAlso: AH=00h,#0009,AX=0070h,#0010,AX=007Eh,AX=6F04h,#0081
- Index: video modes;Video 7|video modes;VEGA|video modes;Headland
- --------V-106F06-----------------------------
- INT 10 - VIDEO - Video7 VGA,VEGA VGA - SELECT AUTOSWITCH MODE
- AX = 6F06h
- BL = Autoswitch mode select
- 00h select EGA/VGA-only modes
- 01h select Autoswitched VGA/EGA/CGA/MGA modes
- 02h select 'bootup' CGA/MGA modes
- BH = enable/disable (00h enable, 01h = disable selection)
- Return: nothing
- --------V-106F07-----------------------------
- INT 10 - VIDEO - Video7 VGA,VEGA VGA - GET VIDEO MEMORY CONFIGURATION
- AX = 6F07h
- Return: AL = 6Fh
- AH = memory configuration
- bits 0-6 = number of 256K blocks of video memory
- bit 7 = DRAM/VRAM (0: DRAM, 1: VRAM)
- BH = chip revision (SR8F) (S/C Chip in VEGA VGA)
- BL = chip revision (SR8E) (G/A Chip in VEGA VGA)
- CX = 0000h
- SeeAlso: AH=12h/BL=10h
- --------V-1070-------------------------------
- INT 10 - VIDEO - TANDY 2000 only - GET ADDRESS OF VIDEO RAM
- AH = 70h
- Return: AX:BX -> WORD containing green plane's offset
- AX:CX -> WORD containing green plane's segment
- AX:DX -> WORD containing segment of red (offset 0) and blue (offset
- 4000) planes
- SeeAlso: AH=71h
- --------V-1070------------------------------------
- INT 10 - HUNTER 16 - DRAW ELLIPSE/CIRCLE
- AH = 70h
- DS:BX -> control block (see #0124)
- Return: nothing
- Desc: Draws a circle or ellipse. Only valid in graphics modes.
- Note: the Husky Hunter 16 is an 8088-based ruggedized laptop. Other family
- members are the Husky Hunter, Husky Hunter 16/80, and Husky Hawk.
- SeeAlso: AH=71h"HUNTER"
-
- Format of HUNTER 16 control block:
- Offset Size Description (Table 0124)
- 00h WORD center X co-ordinate
- 02h BYTE center Y co-ordinate
- 03h WORD radius in pixels
- 05h BYTE color (00h white, 01h black, FFh invert)
- 06h BYTE aspect ratio x:x (1-127)
- 07h BYTE aspect ratio y:y (1-127)
- --------V-107000BX0000-----------------------
- INT 10 - Everex Extended Video BIOS - RETURN EMULATION STATUS
- AX = 7000h
- BX = 0000h
- Return: AL = 70h if Trident-based Everex card
- CL = monitor type (see #0125)
- CH = feature bits (see #0126)
- DX = video board info
- bits 4-15: board ID model (see #0127)
- bits 0-3: board ID revision
- DI = BCD BIOS version number
- SeeAlso: AX=5F01h,AH=FFh"Oak"
-
- (Table 0125)
- Values for Everex monitor type:
- 00h mono
- 01h CGA
- 02h EGA
- 03h digital multifrequency
- 04h IBM PS/2
- 05h IBM 8514
- 06h SuperVGA
- 07h analog multifrequency
- 08h super multifrequency
-
- Bitfields for Everex feature bits:
- Bit(s) Description (Table 0126)
- 7-6 memory size
- 00 = 256K
- 01 = 512K
- 10 = 1024K
- 11 = 2048K
- 5 special oscillator present
- 4 VGA protect enabled
- 0 6845 emulation
-
- (Table 0127)
- Values for board model for Trident-based Everex cards:
- 0236h Ultragraphics II
- 0620h Vision VGA
- 0673h EVGA
- 0678h Viewpoint
- --------V-107000BX0004-----------------------
- INT 10 - Everex Extended Video BIOS - GET PAGING FUNCTION POINTER FOR CURR MODE
- AX = 7000h
- BX = 0004h
- Return: ES:DI -> FAR paging function (call with DL = page to set)
- Note: the word preceding ES:DI is the length of the function in bytes, and
- the last byte of the function is a FAR return instruction.
- SeeAlso: AX=4F05h,AX=7000h/BX=0000h,AX=7000h/BX=0005h
- --------V-107000BX0005-----------------------
- INT 10 - Everex Extended Video BIOS - GET SUPPORTED MODE INFO
- AX = 7000h
- BX = 0005h
- CL = maximum number of modes to get info for
- CH = mode type to get info for (see #0128)
- DL = monitor type to get info for
- ES:DI -> buffer for mode info (see #0129)
- Return: CL = total number of modes fitting criteria
- CH = size of each info record
- SeeAlso: AX=7000h/BX=0000h,AX=7000h/BX=0004h
-
- (Table 0128)
- Values for Everex mode type:
- 00h all modes
- 01h monochrome text modes
- 02h color text modes
- 03h four-color CGA graphics modes
- 04h two-color CGA graphics modes
- 05h 16-color graphics modes
- 06h 256-color graphics modes
-
- Format of Everex mode information record:
- Offset Size Description (Table 0129)
- 00h BYTE mode number (bit 7 set if extended mode)
- 01h BYTE mode type (see #0128)
- 02h BYTE info bits (see #0130)
- 03h BYTE font height
- 04h BYTE text columns on screen
- 05h BYTE text rows on screen
- 06h WORD number of scan lines
- 08h BYTE color information
- bits 7-4 reserved
- 3-0 bits per pixel
-
- Bitfields for Everex info bits:
- Bit(s) Description (Table 0130)
- 7,6 reserved
- 5 monochrome mode
- 4 interlaced display
- 3 requires special oscillator
- 2,1 memory required (00 = 256K, 01 = 512K, 10 = 1024K, 11 = 2048K)
- 0 reserved
- --------V-1071-------------------------------
- INT 10 - VIDEO - TANDY 2000 only - GET ADDRESS OF INCRAM
- AH = 71h
- Return: AX:BX -> WORD containing segment address of INCRAM
- AX:CX -> WORD containing offset of INCRAM
- SeeAlso: AH=70h"TANDY"
- --------V-1071------------------------------------
- INT 10 - HUNTER 16 - DRAW LINE/BOX
- AH = 71h
- DS:BX -> control block (see #0131)
- Return: nothing
- Desc: Draws a line or box. Only valid in graphics modes.
- SeeAlso: AH=70h"HUNTER"
-
- Format of HUNTER 16 control block:
- Offset Size Description (Table 0131)
- 00h WORD left edge X co-ordinate
- 02h BYTE lower edge Y co-ordinate
- 03h WORD right edge X co-ordinate
- 05h BYTE upper edge Y co-ordinate
- 06h BYTE color (00h white, 01h black, FFh invert)
- 07h BYTE type (00h line, 01h box)
- 08h BYTE if non-zero (and type is BOX) fill with color
- --------V-1072-------------------------------
- INT 10 - VIDEO - TANDY 2000 only - SCROLL RIGHT PART OR ALL OF SCREEN
- AH = 72h
- AL = number of columns to shift scroll area, 00h to clear entire area
- BH = new attributes for blanked columns at left
- CH,CL = row, column of upper left corner of scroll area
- DH,DL = row, column of lower right corner of scroll area
- Return: nothing
- SeeAlso: AH=06h,AH=07h,AH=73h"TANDY",INT 15/AH=12h/BH=05h
- --------V-1072------------------------------------
- INT 10 - HUNTER 16 - SELECT TEXT-MODE INVERSE VIDEO MECHANISM
- AH = 72h
- AL = mechanism to use
- 00h do not use inverse video
- 01h emulate MDA. Display attribute 07h is normal video and 70h is
- inverse video.
- 02h use inverse video if background is non-black.
- 03h use inverse video for high intensity text.
- 04h use inverse video for text with background intensity greater
- than foreground intensity.
- 05h use inverse video for text with background color other than
- black or high intensity foreground.
- Return: nothing
- SeeAlso: AH=70h"HUNTER",AH=71h"HUNTER"
- --------V-1073-------------------------------
- INT 10 - VIDEO - TANDY 2000 only - SCROLL LEFT PART OR ALL OF SCREEN
- AH = 73h
- AL = number of columns to shift scroll area, 00h to clear entire area
- BH = new attributes for blanked columns at right
- CH,CL = row, column of upper left corner of scroll area
- DH,DL = row, column of lower right corner of scroll area
- Return: nothing
- SeeAlso: AH=06h,AH=07h,AH=72h"TANDY",INT 15/AH=12h/BH=05h
- --------V-1073------------------------------------
- INT 10 - HUNTER 16 - SELECT TEXT FONT
- AH = 73h
- AL = new font
- 00h 7x7 in a 8x8 cell
- 01h 5x7 in a 6x8 cell
- 06h 3x5 in a 4x6 cell
- Return: BH = cell width
- BL = cell height
- SeeAlso: AH=60h"HUNTER",AH=77h"HUNTER"
- --------V-1074------------------------------------
- INT 10 - HUNTER 16 - SET LCD WINDOWS POSITION
- AH = 74h
- DH = row (0..24)
- DL = column (0..79)
- Return: nothing
- Desc: set the position in the virtual screen being displayed in the LCD
- screen. If Split Screen (INT 10/AH=66h) is used, this call sets the
- position for the window which has the cursor.
- SeeAlso: AH=66h"HUNTER",AH=75h,AH=76h
- --------V-1075------------------------------------
- INT 10 - HUNTER 16 - SET ZOOM
- AH = 75h
- AL = new Zoom state (00h off, nonzero on)
- Return: nothing
- SeeAlso: AH=74h,AH=76h
- --------V-1076------------------------------------
- INT 10 - HUNTER 16 - LOOKING KEYS
- AH = 76h
- AL = action
- 00h home the window
- 01h move up one line
- 02h move down one line
- 03h move left one character
- 04h move right one character
- 05h flip window to other side of virtual screen
- Return: nothing
- Desc: moves the displayed screen around the virtual screen
- SeeAlso: AH=74h,AH=75h
- --------V-1077------------------------------------
- INT 10 - HUNTER 16 - GET GRAPHICS FONT
- AH = 77h
- Return: AL = font number (see #0132)
- SeeAlso: AH=60h"HUNTER",AH=73h"HUNTER"
-
- (Table 0132)
- Values for HUNTER 16 graphics font number:
- 00h 7x7 in a 8x8 cell
- 01h 5x7 in a 6x8 cell
- 02h 7x9 in a 8x10 cell
- 03h 14x9 in a 16x10 cell
- 04h 7x18 in a 8x20 cell
- 05h 14x18 in a 16x20 cell
- 06h 3x5 in a 4x6 cell
- Note: size is X * Y
- --------V-1078------------------------------------
- INT 10 - HUNTER 16 - TURN BACKLIGHT ON/OFF
- AH = 78h
- AL = new state of backlight (00h on, 01h off)
- Return: nothing
- SeeAlso: AH=64h,INT 15/AH=74h
- --------V-107F-------------------------------
- INT 10 - Paradise SVGA - WD90C24 INSTALLATION CHECK
- AH = 7Fh
- Return: AX = 1234h if WD90C24 chip installed
- --------V-107F00-----------------------------
- INT 10 - SOLLEX SuperVGA - GET EXTENSIONS INFO
- AX = 7F00h
- Return: AL <> 7Fh if not supported
- AL = 7Fh if supported
- AH = status
- 00h successful
- ES:DI -> info structure (see #0133)
- 01h failed
- Program: the SOLLEX (Smos videO controLLer EXtensions) SuperVGA functions are
- an extension to the VESA SuperVGA BIOS Extensions (see AX=4F00h) by
- Seiko Epson Corporation intended to provided a standardized interface
- to SuperVGA functionality not addressed by the VESA standard
- SeeAlso: AX=4F00h
-
- Format of SOLLEX SuperVGA info structure:
- Offset Size Description (Table 0133)
- 00h DWORD pointer to VESA function dispatch table
- 04h DWORD pointer to SOLLEX function dispatch table
- 08h DWORD pointer to VESA SuperVGA info (see #0075 at AX=4F00h)
- 0Ch DWORD pointer to mode info structure table, consisting of
- alternating ResInfo (see #0134) and VESA mode information
- (see #0077 at AX=4F01h) blocks, terminated with an FFFFh word
- 10h DWORD pointer to font info structure table (see #0135)
- 14h WORD high resolution crystal frequency in Hz (0000h = not present)
- 16h DWORD pointer to ASCIZ ID string
- 1Ah DWORD pointer to timeout reset table
- array of bytes, each a multiple of the minimum time increment
- 1Eh WORD minimum time increment in timer ticks
- 20h BYTE inverse options supported
- bit 0: inverse supported
- bits 1-7: reserved
- 21h BYTE normal color value
- 22h BYTE inverse color value
- 23h WORD port to be accessed for normal/inverse settings
- 25h WORD type of interface chip (currently undefined)
- 27h WORD program operational mode
- bits 1-0: 00 no preference
- 01 terse (minimum detail in program messages)
- 10 verbose
- 11 use menus if supported, verbose mode otherwise
- bits 7-2: reserved
- 29h WORD SOLLEX specification version
- 2Bh WORD version of VESA/SOLLEX implementation
- 2Dh DWORD offset to relocatable portion of SOLLEX extensions (for CONFIG)
- 2Eh DWORD offset to unused section of the extensions ROM
- 31h 16 BYTEs reserved
- Note: all DWORD pointers initially require segment fixups; if the segment
- is 0000h, it should be changed to the returned ES, otherwise it
- may be assumed to be correct
-
- Format of SOLLEX SuperVGA ResInfo:
- Offset Size Description (Table 0134)
- 00h WORD 16-bit mode number
- 02h WORD adapter type (00h VGA, 01h EGA, 02h CGA, 03h MDA)
- 04h WORD display info (see #0138)
- 06h DWORD pointer to video parameter table
- 0Ah BYTE replacement entry in master Video Parameter
- 0Bh BYTE mode requested for mode set by BIOS
- 0Ch DWORD pointer to LoadReg table
- 10h BYTE index into table of clock values (see #0136)
- SeeAlso: #0133
-
- Format of SOLLEX SuperVGA font info table [array] entry:
- Offset Size Description (Table 0135)
- 00h BYTE required font height
- 01h BYTE parameter to load text mode font
- 02h BYTE parameter to load graphics mode font
- SeeAlso: #0133
-
- (Table 0136)
- Values for SOLLEX SuperVGA clock value index:
- 00h 25 MHz
- 01h 28 MHz
- 02h PCLK
- 03h 31.5 MHz (VESA 640x480)
- 04h reserved
- 05h 16 MHz (EGA)
- 06h PCLK
- 07h 24 MHz (EGA)
- 08h 25 MHz
- 09h 28 MHz
- 0Ah 36 MHz
- 0Bh 45 MHz (for 1024x768)
- 0Ch 80 MHz
- 0Dh 40 MHz
- 0Eh 65 MHz
- 0Fh 1 MHz (for powerdown)
- SeeAlso: #0133
- --------V-107F00BX4000-----------------------
- INT 10 - Diamond Stealth 24 - GET S3 INFORMATION BLOCK
- AX = 7F00h
- BX = 4000h
- Return: AX = 007Fh if supported
- DX:BX -> DAC set mode routine
- SeeAlso: AX=7F00h/BX=4001h,AX=7F00h/BX=4002h,#0656 at INT 1A/AX=B102h
- --------V-107F00BX4001-----------------------
- INT 10 - Diamond Stealth 24 - GET LINEAR ADDRESS
- AX = 7F00h
- BX = 4001h
- Return: AX = 007Fh if supported
- CX = current linear address base (high word)
- SeeAlso: AX=7F00h/BX=4000h,AX=7F00h/BX=4002h
- --------V-107F00BX4002-----------------------
- INT 10 - Diamond Stealth 24 - SET LINEAR ADDRESS
- AX = 7F00h
- BX = 4002h
- CX = new linear address base (high word)
- Return: AX = 007Fh if supported
- SeeAlso: AX=7F00h/BX=4000h,AX=7F00h/BX=4001h
- --------V-107F01BL00-------------------------
- INT 10 - SOLLEX SuperVGA - ADAPTER CONTROL - SET ADAPTER
- AX = 7F01h
- BL = 00h
- CX = adapter request (see #0137)
- Return: AL <> 7Fh if not supported
- AL = 7Fh if supported
- AH = status
- 00h successful
- 01h failed
- Note: initializes video hardware to a particular standard
- SeeAlso: AX=7F00h"SOLLEX",AX=7F01h/BL=01h,AX=7F01h/BL=02h
-
- Bitfields for SOLLEX SuperVGA adapter request:
- Bit(s) Description (Table 0137)
- 1-0 adapter type (00 VGA, 01 EGA, 10 CGA, 11 MDA)
- 2 reserved
- 4-3 change displays (00 none, 01 analog 10 digital 11 panel)
- 6-5 desired monitor sense (01 color, 10 mono, 11=8514)
- 7 lock override
- 8 alternate adapter mode
- 15-9 reserved
- --------V-107F01BL01-------------------------
- INT 10 - SOLLEX SuperVGA - ADAPTER CONTROL - GET ADAPTER
- AX = 7F01h
- BL = 01h
- Return: AL <> 7Fh if not supported
- AL = 7Fh if supported
- AH = status
- 00h successful
- 01h failed
- BX = adapter type (see #0137)
- DX = display type (see #0138)
- SeeAlso: AX=7F00h"SOLLEX",AX=7F01h/BL=00h,AX=7F01h/BL=02h
-
- Bitfields for SOLLEX SuperVGA display type:
- Bit(s) Description (Table 0138)
- 15-9 reserved
- 8 alternate display active
- 7 Enhanced Color Display monitor active
- 6 multi-frequency digital monitor active
- 5 PS/2-type monitor active
- 4 plasma/electroluminescent panel active
- 3 LCD panel active
- 2 multi-frequency analog monitor active
- 1-0 monitor sense (00 none, 01 color, 10 mono, 11=8514)
- --------V-107F01BL02-------------------------
- INT 10 - SOLLEX SuperVGA - ADAPTER CONTROL - DETERMINE ADAPTER SUPPORT
- AX = 7F01h
- BL = 02h
- CX = adapter request (see #0137)
- Return: AL <> 7Fh if not supported
- AL = 7Fh if supported
- AH = status
- 00h requested setting can successfully be made
- 01h requested setting not available in this configuration
- SeeAlso: AX=7F00h"SOLLEX",AX=7F01h/BL=00h
- --------V-107F02BL00-------------------------
- INT 10 - SOLLEX SuperVGA - DISPLAY OUTPUT CONTROL - SET DISPLAY OUTPUT
- AX = 7F02h
- BL = 00h
- CX = display output setting (see #0139)
- Return: AL <> 7Fh if not supported
- AL = 7Fh if supported
- AH = status
- 00h successful
- 01h failed
- SeeAlso: AX=7F00h"SOLLEX",AX=7F02h/BL=00h
-
- Bitfields for SOLLEX SuperVGA display output setting:
- Bit(s) Description (Table 0139)
- 0 CRTC control in 2,1 valid
- 1 enable digital output
- 2 enable analog output
- 3 panel control in 5,4 valid
- 4 enable LCD output
- 5 enable plasma/EL output
- 6 inverse control in 7 valid
- 7 0=normal, 1=inverse
- 15-8 reserved
- --------V-107F02BL01-------------------------
- INT 10 - SOLLEX SuperVGA - DISPLAY OUTPUT CONTROL - GET DISPLAY OUTPUT
- AX = 7F02h
- BL = 01h
- Return: AL <> 7Fh if not supported
- AL = 7Fh if supported
- AH = status
- 00h successful
- BX = display output setting (see #0139)
- CX = displays attached (see #0140)
- 01h failed
- SeeAlso: AX=7F00h"SOLLEX",AX=7F02h/BL=00h
-
- Bitfields for SOLLEX SuperVGA displays attached:
- Bit(s) Description (Table 0140)
- 0 PS/2 display on analog output
- 1 multi-frequency monitor on analog output
- 2 LCD panel attached
- 3 plasma/electroluminescent panel attached
- 4 multi-frequency monitor on digital output
- 5 Enhanced Color Display attached to digital outpt
- 6 alternate display
- 15-7 reserved
- --------V-107F03BL00-------------------------
- INT 10 - SOLLEX SuperVGA - VIDEO SUPPORT CONTROL - GET SUPPORT INFO
- AX = 7F03h
- BL = 00h
- CX = support type
- 0000h VGA, 0001h EGA, 0002h CGA, 0003h MDA, 0004h extensions,
- 0005h-0012h reserved for SOLLEX, 0013h Hercules,
- 0014h-001Fh reserved for SOLLEX, 0020h-00FFh reserved for OEM
- Return: AL <> 7Fh if not supported
- AL = 7Fh if supported
- AH = status
- 00h successful
- CX = size of video support code
- DX = segment of physical video support (0000h if no ROM)
- ES = segment of active video support
- ES:DI -> information block (DI = 0000h if none available)
- 01h failed
- SeeAlso: AX=7F03h/BL=01h
- --------V-107F03BL01-------------------------
- INT 10 - SOLLEX SuperVGA - VIDEO SUPPORT CONTROL - INITIALIZE VIDEO SUPPORT
- AX = 7F03h
- BL = 01h
- CX = support request
- ES = segment of support code
- Return: AL <> 7Fh if not supported
- AL = 7Fh if supported
- AH = status
- 00h successful
- 01h failed
- Note: initializes the indicated video support by calling ES:0003h; this
- function may be used to switch the active video support back to
- ROM after AX=7F03h/BL=02h
- SeeAlso: AX=7F03h/BL=00h
- --------V-107F03BL02-------------------------
- INT 10 - SOLLEX SuperVGA - VIDEO SUPPORT CONTROL - GO RAM RESIDENT
- AX = 7F03h
- BL = 02h
- CX = support request
- ES = destination segment
- Return: AL <> 7Fh if not supported
- AL = 7Fh if supported
- AH = status
- 00h successful
- 01h failed
- SeeAlso: AX=7F00h"SOLLEX",AX=7F03h/BL=01h
- --------V-107F04BL00-------------------------
- INT 10 - SOLLEX SuperVGA - POWER CONTROL - SET POWER STATE
- AX = 7F04h
- BL = 00h
- CX = new power state
- Return: AL <> 7Fh if not supported
- AL = 7Fh if supported
- AH = status
- 00h successful
- 01h failed
- Note: higher values progressively reduce the operations available on the
- video adapter while yielding increasing power savings
- SeeAlso: AX=7F00h"SOLLEX",AX=7F04h/BL=01h
- --------V-107F04BL01-------------------------
- INT 10 - SOLLEX SuperVGA - POWER CONTROL - GET POWER STATE
- AX = 7F04h
- BL = 01h
- Return: AL <> 7Fh if not supported
- AL = 7Fh if supported
- AH = status
- 00h successful
- CX = current power state
- DX = maximum state
- 01h failed
- SeeAlso: AX=7F00h"SOLLEX",AX=7F04h/BL=00h
- --------V-107F04BL02-------------------------
- INT 10 - SOLLEX SuperVGA - POWER CONTROL - SET TIMEOUT RESET
- AX = 7F04h
- BL = 02h
- CX = timeout reset
- Return: AL <> 7Fh if not supported
- AL = 7Fh if supported
- AH = status
- 00h successful
- 01h failed
- SeeAlso: AX=7F00h"SOLLEX",AX=7F04h/BL=03h
- --------V-107F04BL03-------------------------
- INT 10 - SOLLEX SuperVGA - POWER CONTROL - GET TIMEOUT RESET
- AX = 7F04h
- BL = 03h
- Return: AL <> 7Fh if not supported
- AL = 7Fh if supported
- AH = status
- 00h successful
- BX = time increment
- CX = current timeout reset
- DX = maximum timeout reset
- ES:DI -> timeout reset table (array of bytes)
- 01h failed
- Note: the timeout period is computed as (BYTE ES:[DI+CX]) * BX timer ticks
- SeeAlso: AX=7F00h"SOLLEX",AX=7F04h/BL=02h
- --------V-107F05-----------------------------
- INT 10 - SOLLEX SuperVGA - LOAD REGISTER
- AX = 7F05h
- ES:DI -> register value table (see #0141)
- Return: AL <> 7Fh if not supported
- AL = 7Fh if supported
- AH = status
- 00h successful
- 01h failed
- SeeAlso: AH=F1h,AH=F3h,AH=F5h
-
- Format of SOLLEX SuperVGA register value table:
- Offset Size Description (Table 0141)
- 00h WORD base I/O register (FFFFh = end of list)
- 02h 2N BYTEs pairs of values to be written to the base I/O register as an
- index value and the following register as a data byte
- 2N+2 WORD FFFFh (end of data list)
- ... (repeats until FFFFh base address)
- --------V-107F06-----------------------------
- INT 10 - SOLLEX SuperVGA - MULTIPLE FONT CONTROL
- AX = 7F06h
- BL = subfunction
- 00h set multiple font state
- CX = new state (00h off, 01h on)
- 01h get multiple font state
- Return: BL = current state (00h off, 01h on)
- Return: AL <> 7Fh if not supported
- AL = 7Fh if supported
- AH = status
- 00h successful
- 01h failed
- SeeAlso: AX=1100h,AX=1103h
- --------V-107F07-----------------------------
- INT 10 - SOLLEX SuperVGA - FILL VIDEO RAM
- AX = 7F07h
- BL = how much to fill
- 00h regen size
- 01h all video memory
- CX = pattern to write (normally 0720h for text modes and 0000h for gr)
- Return: AL <> 7Fh if not supported
- AL = 7Fh if supported
- AH = status
- 00h successful
- 01h failed
- SeeAlso: AH=06h
- --------A-1080-------------------------------
- INT 10 - CU Writer v1.4 - GET OPTION
- AH = 80h
- AL = desired option
- Return: ???
- Program: CU Writer is a public-domain Thai-English word processor from
- Chulalongkorn University, Bangkok
- SeeAlso: AH=81h"CU Writer"
- --------Q-1080--DX4456-----------------------
- INT 10 U - VIDEO - DESQview 2.0x only - internal - SET ??? HANDLER
- AH = 80h
- DX = 4456h ('DV')
- ES:DI -> FAR subroutine to be called on ???
- Return: DS = segment of DESQview data structure for video buffer
- Note: this function is probably meant for internal use only, due to the magic
- value required in DX
- the subroutine seems to be called when the DESQview menu is accessed;
- on entry, AL = 03h or 04h
- --------A-1081-------------------------------
- INT 10 - CU Writer v1.4 - SET OPTION
- AH = 81h
- ???
- Return: ???
- SeeAlso: AH=80h"CU Writer"
- --------Q-1081--DX4456-----------------------
- INT 10 U - VIDEO - DESQview 2.0x only - internal - GET ???
- AH = 81h
- DX = 4456h ('DV')
- Return: ES = segment of DESQview data structure for video buffer
- BYTE ES:[0] = current window number in DV 2.0x
- Note: this function is probably meant for internal use only, due to the magic
- value required in DX
- SeeAlso: AH=82h"DESQview"
- --------Q-1082--DX4456-----------------------
- INT 10 U - VIDEO - DESQview 2.0x only - internal - GET CURRENT WINDOW INFO
- AH = 82h
- DX = 4456h ('DV')
- Return: DS = segment in DESQview for data structure
- in DV 2.00,
- BYTE DS:[0] = window number
- WORD DS:[1] = segment of other data structure
- WORD DS:[3] = segment of window's object handle
- ES = segment of DESQview data structure for video buffer
- AL = current window number
- AH = ???
- BL = direct screen writes
- 00h program does not do direct writes
- 01h program does direct writes, so shadow buffer not usable
- BH = ???
- CL = current video mode
- CH = ???
- Note: this function is probably meant for internal use only, due to the magic
- value required in DX
- SeeAlso: AH=81h"DESQview"
- --------J-108200-----------------------------
- INT 10 - VIDEO - AX PC - GET/SET SCROLL MODE
- AX = 8200h
- BL = new scroll mode or FFh to get current mode
- 00h dynamic, 01h software
- Return: AL = scroll mode (current mode if BL=FFh, previous mode otherwise)
- SeeAlso: AH=06h,AH=07h
- --------J-108300-----------------------------
- INT 10 - VIDEO - AX PC - GET VIDEO RAM ADDRESS
- AX = 8300h
- Return: AX = offset of video RAM
- ES:BX -> virtual text RAM buffer
- SeeAlso: AX=5201h
- ----------1086-------------------------------
- INT 10 - ???
- AH = 86h
- Note: called by Diamond Stealth64 Video STLTH64.VXD
- SeeAlso: INT 2F/AX=4021h
- --------N-108B-------------------------------
- INT 10 - Alloy MW386 - FORCE WORKSTATION SCREEN UPDATE
- AH = 8Bh
- Return: nothing
- SeeAlso: AH=92h,AH=93h
- --------N-1090-------------------------------
- INT 10 - Alloy MW386 - GET PHYSICAL WORKSTATION DISPLAY MODE
- AH = 90h
- Return: AL = current video mode (see #0009 at AH=00h)
- SeeAlso: AH=91h
- --------N-1091-------------------------------
- INT 10 - Alloy MW386 - GET PHYSICAL WORKSTATION ADAPTER TYPE
- AH = 91h
- Return: AL = video adapter type (see #0142)
- Note: types less than 80h do not imply that the current user is on the host
- SeeAlso: AH=90h
-
- (Table 0142)
- Values for Alloy MW386 video adapter type:
- 00h monochrome
- 01h Hercules monochrome graphics
- 02h CGA
- 03h EGA
- 04h VGA
- 80h monochrome text terminal
- 81h Hercules graphics terminal
- 82h color graphics terminal
- --------N-1092-------------------------------
- INT 10 - Alloy MW386 - INHIBIT WORKSTATION SCREEN UPDATES
- AH = 92h
- Return: nothing
- Note: the terminal will be updated even when screen updates are inhibited if
- TTY output is used
- SeeAlso: AH=8Bh
- --------N-1093-------------------------------
- INT 10 - Alloy MW386 - REDRAW SCREEN
- AH = 93h
- Return: nothing
- SeeAlso: AH=8Bh,AH=FFh
- --------A-10A0-------------------------------
- INT 10 - CU Writer v1.4 - SET PIXEL WRITE MODE
- AH = A0h
- ???
- Return: ???
- Program: CU Writer is a public-domain Thai-English word processor from
- Chulalongkorn University, Bangkok
- SeeAlso: AH=80h"CU Writer",AH=B0h
- --------p-10A000-----------------------------
- INT 10 - ATI Mach64 BIOS - ???
- AX = A000h
- CL = ??? (bits 2-0 may not be 000)
- CH = ??? (81h or ???)
- DX = segment of ??? (if CH=81h)
- ???
- Return: AX = ???
- SeeAlso: AX=4F10h/BL=00h,AX=A001h
- ----------10A001-----------------------------
- INT 10 - ATI Mach64 BIOS - ???
- AX = A001h
- CL = ??? flags
- ???
- Return: AH = status
- 00h successful
- 01h failed
- ???
- SeeAlso: AX=A000h,AX=A002h
- ----------10A002-----------------------------
- INT 10 - ATI Mach64 BIOS - ???
- AX = A002h
- CL = ??? (bits 2-0 may not be 000)
- CH = ??? (81h or ???)
- DX = segment of ??? (if CH=81h)
- ???
- Return: AH = status
- 00h successful
- 01h failed
- ???
- Note: executes AX=A000h, then AX=A001h if A000h was successful
- SeeAlso: AX=A000h,AX=A001h
- ----------10A003-----------------------------
- INT 10 - ATI Mach64 BIOS - ???
- AX = A003h
- BX = ???
- ???
- Return: AH = status (00h successful)
- ???
- SeeAlso: AX=A000h,AX=A002h
- --------V-10A004-----------------------------
- INT 10 - PhoenixVIEW/LC - VIDEO DISPLAY TYPE
- AX = A004h
- ???
- Return: ???
- Desc: configure display parameters
- SeeAlso: AX=A01Bh"PhoenixVIEW/LC"
- ----------10A004-----------------------------
- INT 10 - ATI Mach64 BIOS - ???
- AX = A004h
- BX = video mode??? (0000-00FFh)
- DX = ??? (sent to some port [66ECh???] one bit at a time, high to low)
- ???
- Return: AH = status
- 00h successful
- 01h failed
- ???
- SeeAlso: AX=A000h,AX=A002h
- ----------10A005-----------------------------
- INT 10 - ATI Mach64 BIOS - ???
- AX = A005h
- CL = ??? flags (bits 0,2, others?)
- ???
- Return: AH = status
- 00h successful
- 01h failed
- ???
- SeeAlso: AX=A000h,AX=A002h
- ----------10A006-----------------------------
- INT 10 - ATI Mach64 BIOS - ???
- AX = A006h
- ???
- Return: AH = status
- 00h successful
- 01h failed
- ???
- SeeAlso: AX=A000h,AX=A002h
- ----------10A007-----------------------------
- INT 10 - ATI Mach64 BIOS - GET ???
- AX = A007h
- Return: AH = 00h (successful)
- AL = ??? (00h)
- BX = ??? (15A0h in examined BIOS)
- DX = segment of BIOS
- SeeAlso: AX=A000h,AX=A002h
- ----------10A008-----------------------------
- INT 10 - ATI Mach64 BIOS - GET ??? SIZE
- AX = A008h
- CL = ??? flags
- ???
- Return: AH = 00h (successful)
- BX = size of ??? (0046h if CL bit 0 clear on entry)
- SeeAlso: AX=A000h,AX=A009h
- ----------10A009-----------------------------
- INT 10 - ATI Mach64 BIOS - GET ???
- AX = A009h
- DX:BX -> buffer for ???
- CL = ??? flags
- ???
- Return: AH = status
- 00h successful
- DX:BX buffer filled
- 01h failed
- ???
- SeeAlso: AX=A000h,AX=A008h
- ----------10A00A-----------------------------
- INT 10 - ATI Mach64 BIOS - GET ???
- AX = A00Ah
- Return: AH = 00h (successful)
- AL = ??? (01h)
- BX = ??? (5938h)
- CX = ??? (595Eh)
- DX = segment of BIOS
- SeeAlso: AX=A000h,AX=A002h
- ----------10A00B-----------------------------
- INT 10 - ATI Mach64 BIOS - ???
- AX = A00Bh
- BX = ???
- CL = ??? flags
- ???
- Return: AH = status
- 00h successful
- 01h failed
- ???
- SeeAlso: AX=A000h,AX=A002h
- --------p-10A00C-----------------------------
- INT 10 - ATI Mach64 BIOS - SET SLEEP MODE
- AX = A00Ch
- CL = new state
- 00h normal operation
- 01h standby
- 02h suspend
- 03h off
- Return: AH = status
- 00h successful
- 01h failed
- Note: CL bit 2 affects values written to video card's ports
- SeeAlso: AX=A000h,AX=A00Dh,AX=4F00h,AX=4F10h/BL=01h
- ----------10A00D-----------------------------
- INT 10 - ATI Mach64 BIOS - GET SLEEP MODE
- AX = A00Dh
- Return: AH = 00h (successful)
- CL = current power mode
- 00h normal operation
- 01h standby
- 02h suspend
- 03h off
- SeeAlso: AX=A00Ch,AX=4F10h/BL=02h
- ----------10A00E-----------------------------
- INT 10 - ATI Mach64 BIOS - SET ???
- AX = A00Eh
- CL = ??? (00h-03h)
- Return: AH = status
- 00h successful
- 01h failed
- Note: CL zero/nonzero are treated differently
- SeeAlso: AX=A000h,AX=A00Fh
- ----------10A00F-----------------------------
- INT 10 - ATI Mach64 BIOS - GET ???
- AX = A00Fh
- Return: AH = 00h (successful)
- CL = ??? (00h-03h, read from PORT 42ECh)
- SeeAlso: AX=A000h,AX=A00Eh
- ----------10A010-----------------------------
- INT 10 - ATI Mach64 BIOS - ???
- AX = A010h
- CL = ??? (80h/other)
- ???
- Return: AH = status
- 00h successful
- 01h failed
- ???
- SeeAlso: AX=A000h,AX=A002h
- ----------10A011-----------------------------
- INT 10 - ATI Mach64 BIOS - GET ???
- AX = A011h
- Return: AH = 00h (successful)
- BL = ??? (1Fh)
- BH = ??? (0Fh)
- CL = ??? (00h)
- CH = ??? (0Fh)
- DX = ??? (00FFh)
- SeeAlso: AX=A000h,AX=A010h
- ----------10A012-----------------------------
- INT 10 - ATI Mach64 BIOS - GET ???
- AX = A012h
- Return: AH = 00h (successful)
- AL = ??? (00h)
- BX = ??? (0000h)
- CX = ??? (0000h)
- DX = ??? (02ECh)
- SeeAlso: AX=A000h,AX=A002h
- ----------10A013-----------------------------
- INT 10 - ATI Mach64 BIOS - ???
- AX = A013h
- ???
- Return: AH = status
- 00h successful
- 01h failed
- ???
- Note: not implemented in examined BIOS, always returns AH=01h
- SeeAlso: AX=A000h,AX=A002h
- --------V-10A01B-----------------------------
- INT 10 - PhoenixVIEW/LC - CRT MONITOR DETECTION
- AX = A01Bh
- ???
- Return: ???
- Desc: determine whether an external display is currently attached
- SeeAlso: AX=A004h"PhoenixVIEW/LC"
- --------U-10AA-------------------------------
- INT 10 OU - Player's Tool 3.0 - UNINSTALL
- AH = AAh
- Return: ???
- Note: this call has been removed in PT 3.996b
- Program: Player's Tool is a game cheater by Dmitry Yakunin & Andy Robinson
- SeeAlso: AH=ABh,INT 2F/AH=AAh
- --------U-10AB-------------------------------
- INT 10 OU - Player's Tool 3.0 - INSTALLATION CHECK
- AH = ABh
- Return: BH = FFh
- ???
- Note: this call has been removed in PT 3.996b
- SeeAlso: AH=AAh,INT 2F/AH=ABh
- --------A-10B0-------------------------------
- INT 10 - CU Writer v1.4 - PUT PIXEL
- AH = B0h
- ???
- Return: ???
- SeeAlso: AH=A0h"CU Writer",AH=B1h,AH=B2h,AH=B3h,AH=B4h,AH=B5h,AH=D0h
- --------A-10B1-------------------------------
- INT 10 - CU Writer v1.4 - MOVE TO
- AH = B1h
- ???
- Return: ???
- SeeAlso: AH=B0h,AH=B2h,AH=C0h"CU Writer"
- --------A-10B2-------------------------------
- INT 10 - CU Writer v1.4 - DRAW LINE TO
- AH = B2h
- ???
- Return: ???
- SeeAlso: AH=B0h,AH=B1h,AH=B3h,AH=B4h,AH=B5h
- --------A-10B3-------------------------------
- INT 10 - CU Writer v1.4 - FLOOD FILL
- AH = B3h
- ???
- Return: ???
- SeeAlso: AH=B2h,AH=B5h
- --------A-10B4-------------------------------
- INT 10 - CU Writer v1.4 - DRAW RECTANGLE
- AH = B4h
- ???
- Return: ???
- SeeAlso: AH=B0h,AH=B2h,AH=B3h,AH=B5h
- --------A-10B5-------------------------------
- INT 10 - CU Writer v1.4 - DRAW FILLED RECTANGLE
- AH = B5h
- ???
- Return: ???
- SeeAlso: AH=B0h,AH=B2h,AH=B3h,AH=B4h
- --------V-10BD44-----------------------------
- INT 10 U - Compaq QVision - ???
- AX = BD44h
- ???
- Return: ???
- Note: called by Compaq's MTX132.COM, which places the QVision in 132-column
- mode
- --------V-10BF--CX0000-----------------------
- INT 10 - Athena Digital HGCIBM.COM - INSTALLATION CHECK
- AH = BFh
- CX = 0000h (???)
- Return: CX = 0202h
- DL = ??? (internal data, possibly version number)
- --------b-10BF00-----------------------------
- INT 10 - VIDEO - Compaq Extensions - SELECT EXTERNAL MONITOR
- AX = BF00h
- Return: nothing
- Desc: specify that the external monitor become the active monitor
- Note: all registers preserved and the internal monitor is blanked
- SeeAlso: AX=BF01h,AX=BF12h,AH=12h/BL=35h
- --------b-10BF01-----------------------------
- INT 10 - VIDEO - Compaq Extensions - SELECT INTERNAL MONITOR
- AX = BF01h
- Return: nothing
- Desc: specify that the internal monitor become the active monitor
- Note: all registers preserved and the external monitor is blanked
- SeeAlso: AX=BF00h,AX=BF12h,AH=12h/BL=35h
- --------b-10BF02-----------------------------
- INT 10 - VIDEO - Compaq Extensions - SET MASTER MODE OF CURRENT CONTROLLER
- AX = BF02h
- BH = master mode
- 04h CGA
- 05h EGA
- 07h MDA
- Return: nothing
- SeeAlso: AX=BF03h
- --------b-10BF03BX0000-----------------------
- INT 10 - VIDEO - Compaq Extensions - GET ENVIRONMENT
- AX = BF03h
- BX = 0000h
- Return: BH = active monitor
- (00h = external, 01h = internal, 03h both, 04h neither)
- BL = master mode (see #0143)
- CH = ASIC type and version
- 00h (reserved, very early Compaq VGCs)
- 31h if QVision VGA
- CL = switchable VDU modes supported (see #0144)
- DH = internal monitor type (see #0145)
- DL = external monitor type (see #0145)
- SeeAlso: AX=1A00h,AX=BF00h,AX=BF01h,AX=BF02h,AX=BF11h
-
- (Table 0143)
- Values for Compaq video master mode:
- 00h switchable VDU not present
- 04h CGA
- 05h EGA
- 07h MDA
- 08h switchable LCD controller present
- 09h plasma VGA
- 0Ah TFT (active-matrix) VGA
-
- Bitfields for Compaq switchable VDU modes support:
- Bit(s) Description (Table 0144)
- 0 CGA supported
- 1,2 reserved (1)
- 3 MDA supported
- 4 BitBLT engine available
- 5 132-column support availble
- 6 640x480x256 mode available
- 7 8-bit DAC mode available
-
- (Table 0145)
- Values for Compaq monitor type:
- 00h none
- 01h dual-mode monitor
- 02h 5153 RGB monitor (RGBI 16-color)
- 03h Compaq Color monitor
- 04h 640x400 flat panel (Plasma CGA)
- 05h VGC monochrome
- 06h VGC color
- 07h 8-level mono LCD VGA (internal)
- 1024x768 mono VGA (external)
- 08h 16-level mono plasma VGA (internal)
- 1024x768 color VGA (external)
- 09h 4-level mono LCD CGA
- 0Ah 16-level mono LCD VGA
- 0Bh active-matrix color VGA
- 0Ch active-matrix mono VGA
- 0Dh STN color VGA
- --------b-10BF04-----------------------------
- INT 10 - VIDEO - Compaq Extensions - SET MODE SWITCH DELAY
- AX = BF04h
- BH = new state of delay (00h enabled, 01h disabled)
- Return: nothing
- Note: the 04/08/93 sytem ROM appears to use BL instead of BH; a future
- version of the list will provide more definite information
- SeeAlso: AX=BF05h
- --------b-10BF05-----------------------------
- INT 10 - VIDEO - Compaq Extensions - ENABLE/DISABLE DISPLAY
- AX = BF05h
- BH = new state of video
- 00h off
- 01h on
- Return: nothing
- Note: the 04/08/93 sytem ROM appears to use BL instead of BH; a future
- version of the list will provide more definite information
- SeeAlso: AH=12h/BL=36h,AX=BF04h
- --------b-10BF06-----------------------------
- INT 10 - VIDEO - Compaq SLT/286 - READ GRAY SCALE TABLE
- AX = BF06h
- CL = address to be read from gray scale table
- Return: AL = bit 3-0 - Value read from gray scale table
- CL = address to be read from gray scale table
- SeeAlso: AH=12h/BL=33h,AX=BF07h
- --------b-10BF07-----------------------------
- INT 10 - VIDEO - Compaq SLT/286 - WRITE GRAY SCALE TABLE
- AX = BF07h
- CH = value to write to gray scale table
- CL = address to be written to gray scale table
- Return: nothing
- SeeAlso: AX=BF06h,AX=BF08h
- --------b-10BF08-----------------------------
- INT 10 - VIDEO - Compaq SLT/286 - WRITE COLOR MIX REGISTERS
- AX = BF08h
- CH = bits 7-4 green weight
- bits 3-0 blue weight
- CL = bits 7-4 unused
- bits 3-0 red weight
- Return: nothing
- SeeAlso: AH=12h/BL=33h,AX=BF07h
- --------b-10BF09-----------------------------
- INT 10 - VIDEO - Compaq Extensions - TURN ON REVERSE VIDEO
- AX = BF09h
- Return: CF clear
- Notes: sets bit 6 of port 03CEh index 81h; in some cases also sets index 84h
- to 6Fh and index 83h to 04h
- supported by at least the QVision board and the LTE Lite ROM BIOS
- SeeAlso: AX=BF0Ah,AX=BF0Bh
- --------b-10BF0A-----------------------------
- INT 10 - VIDEO - Compaq Extensions - TURN OFF REVERSE VIDEO
- AX = BF0Ah
- Return: CF clear
- Notes: clears bit 6 of port 03CEh index 81h; in some cases also sets index 84h
- to 80h and index 83h to FBh
- supported by at least the QVision board and the LTE Lite ROM BIOS
- SeeAlso: AX=BF09h,AX=BF0Bh
- --------b-10BF0B-----------------------------
- INT 10 - VIDEO - Compaq Extensions - CHECK WHETHER VIDEO REVERSED
- AX = BF0Bh
- Return: CF clear
- AX = state (0000h normal video, 0001h reverse video)
- Note: supported by at least the QVision board and the LTE Lite ROM BIOS
- SeeAlso: AX=BF09h,AX=BF0Ah
- --------b-10BF0C-----------------------------
- INT 10 - VIDEO - Compaq Extensions - SET DAC 6-BIT MODE
- AX = BF0Ch
- Return: CF clear
- Desc: specify that video DAC registers use only six bits of color info
- Note: supported by at least the QVision board and the SystemPro XL ROM BIOS
- SeeAlso: AX=BF0Dh,AX=BF0Eh
- --------b-10BF0D-----------------------------
- INT 10 - VIDEO - Compaq Extensions - SET DAC 8-BIT MODE
- AX = BF0Dh
- Return: CF clear
- Desc: specify that video DAC registers use all eight bits of color info
- Note: supported by at least the QVision board and the SystemPro XL ROM BIOS
- SeeAlso: AX=BF0Ch,AX=BF0Eh
- --------b-10BF0E-----------------------------
- INT 10 - VIDEO - Compaq Extensions - CHECK DAC 6-BIT/8-BIT mode
- AX = BF0Eh
- Return: CF clear
- AL = DAC mode
- 00h in 6-bit mode
- 01h in 8-bit mode
- Note: supported by at least the QVision board and the SystemPro XL ROM BIOS
- SeeAlso: AX=BF0Ch,AX=BF0Dh
- --------b-10BF0F-----------------------------
- INT 10 - VIDEO - Compaq Extensions - SET HIGH ADRESS MAP REGISTER
- AX = BF0Fh
- BX = high address map location in megabytes, or
- 0000h to disable high address map, or
- FFFFh to let ROM configure high address map
- Return: CF clear
- AX = previous value of high address map register
- Notes: supported by at least the QVision board and the SystemPro XL and LTE
- Lite ROM BIOSes
- SeeAlso: AX=BF10h
- --------b-10BF10-----------------------------
- INT 10 - VIDEO - Compaq Extensions - GET HIGH ADDRESS MAP REGISTER
- AX = BF10h
- Return: CF clear
- AX = current value of high address map register
- Notes: supported by at least the QVision board and the SystemPro XL and LTE
- Lite ROM BIOSes
- the Compaq QVision documentation (October 1993) says the value is
- returned in BX, but this appears to be one of many typos
- SeeAlso: AX=BF0Fh
- --------b-10BF11-----------------------------
- INT 10 - VIDEO - Compaq Extensions - GET EXTENDED ENVIRONMENT
- AX = BF11h
- Return: AL = BFh if supported
- CF clear
- ES:DI -> ASCII signature "COMPAQ"
- ES:SI -> advanced functionality table (see #0146)
- Note: supported by at least the QVision board and the LTE Lite and ProSignia
- ROM BIOSes
- SeeAlso: AX=1A00h,AX=BF03h
-
- Bitfields for Compaq advanced video functionality:
- Bit(s) Description (Table 0146)
- 31 future graphics extensions (reserved, set to 0)
- 30-16 reserved
- 15-12 available video memory in 256K blocks, less one (0000 = 256K, etc.)
- 11-8 reserved
- 7 QVision modes supported
- 6 Advanced VGA modes supported
- 5 Accelerated VGA modes supported
- 4 standard VGA modes supported
- 3-2 reserved
- 1 132-column modes supported
- 0 reserved
- --------b-10BF12-----------------------------
- INT 10 - VIDEO - Compaq Extensions - NEW ACTIVE MONITOR
- AX = BF12h
- BH reserved
- BL = function mask (see #0147)
- Return: CF clear
- Notes: this function is a NOP if the VGA subsystem is inactive or the current
- Display Combination Code is 10h or higher
- supported by at least the QVision board and the LTE Lite and ProSignia
- ROM BIOSes
- SeeAlso: AX=BF01h,AX=BF02h,#0657
-
- Bitfields for function mask:
- Bit(s) Description (Table 0147)
- 7 command mode
- if set, bits 1 and 0 make the monitor active when set
- if clear, bits 1 and 0 toggle the monitor's state when set
- 6-2 reserved
- 1 internal monitor
- 0 external monitor
- --------b-10BF13-----------------------------
- INT 10 - VIDEO - Compaq QVision - GAMMA CORRECTION
- AX = BF13h
- BL = subfunction
- 00h load gamma correction table for true-color mode
- DS = BIOS data segment
- 01h set palette RAM bypass
- BH = 00h
- Return: nothing
- Note: these functions must be called after a video mode set, and are in
- effect only for the current video mode
- SeeAlso: #0657
- --------V-10BFA0BXADAD-----------------------
- INT 10 - VIDEO - Compaq ADAPT.COM - INSTALLATION CHECK
- AX = BFA0h
- BX = ADADh
- Return: AX = BDBDh if newer ADAPT.COM installed
- BX = BCD version (BH = major, BL = minor)
- CL = ???
- CH = ???
- DL = ???
- AX = ADADh if older version of ADAPT.COM installed
- Program: ADAPT is Compaq's Advanced Display Attribute Programming Tool, an
- optionally-resident utility for setting display colors and cursor
- size; when resident, it also includes a screen blanker
- SeeAlso: AX=BFA1h,AX=BFA2h,AX=DFA5h
- Index: screen saver;ADAPT
- --------V-10BFA1-----------------------------
- INT 10 - VIDEO - Compaq ADAPT.COM - GET ???
- AX = BFA1h
- Return: AX = BDBEh if supported
- CH = current value of ???
- DL = current value of ???
- SeeAlso: AX=BFA0h,AX=BFA2h
- --------V-10BFA2-----------------------------
- INT 10 - VIDEO - Compaq ADAPT.COM - SET ???
- AX = BFA2h
- CH = new value for ???
- DL = new value for ???
- Return: AX = BDBEh if supported
- SeeAlso: AX=BFA0h,AX=BFA1h
- --------A-10C0-------------------------------
- INT 10 - CU Writer v1.4 - GO TO TEXT ROW AND COLUMN
- AH = C0h
- ???
- Return: ???
- SeeAlso: AH=B1h,AH=C1h,AH=C2h,AH=C3h,AH=C4h
- --------V-10C000-----------------------------
- INT 10 - S3 SpeedUp v3.00+ - INSTALLATION CHECK
- AX = C000h
- Return: AX = FFFFh if installed
- DX = version number (binary, DH=major, DL=minor)
- BX = resident code segment
- Program: S3SPDUP is a freeware TSR by Dietmar Meschede to improve the speed
- of chained video modes (both VESA and VGA Mode 13) on S3-chipset
- video cards
- SeeAlso: AX=C001h,AX=C002h,AX=C003h,AX=D000h"S3VBE"
- --------V-10C001-----------------------------
- INT 10 - S3 SpeedUp v3.00+ - GET ACTIVE OPTIONS
- AX = C001h
- Return: AX = FFFFh if function supported
- BX = currently active options (see #0148)
- SeeAlso: AX=C000h,AX=C002h,AX=C003h
-
- Bitfields for S3SpeedUp options:
- Bit(s) Description (Table 0148)
- 0 speed up banked VESA modes
- 1 speed up 320x200 VGA mode 13
- SeeAlso: #0154
- --------V-10C002-----------------------------
- INT 10 - S3 SpeedUp v3.00+ - SET ACTIVE OPTIONS
- AX = C002h
- BX = new value for active options (see #0148)
- Return: AX = FFFFh if function supported
- SeeAlso: AX=C000h,AX=C001h,AX=C003h,AX=D003h"S3VBE"
- --------V-10C003-----------------------------
- INT 10 - S3 SpeedUp v3.10+ - GET FLAGS
- AX = C003h
- Return: AX = FFFFh if function supported
- BX = flags
- bit 0: SpeedUp is active
- bit 1: Windows run after SpeedUp
- SeeAlso: AX=C000h,AX=C001h,AX=C002h,AX=D005h"S3VBE"
- --------V-10C004-----------------------------
- INT 10 - S3 SpeedUp v3.10+ - RESERVED FUNCTIONS
- AX = C004h-C0FFh
- Return: AX = 5555h
- SeeAlso: AX=C000h
- --------A-10C1-------------------------------
- INT 10 - CU Writer v1.4 - OUTPUT TEXT
- AH = C1h
- ???
- Return: ???
- SeeAlso: AH=C0h,AH=C2h,AH=C3h,AH=C4h
- --------A-10C2-------------------------------
- INT 10 - CU Writer v1.4 - REVERSE TEXT
- AH = C2h
- ???
- Return: ???
- SeeAlso: AH=C0h,AH=C1h,AH=C3h,AH=C4h
- --------A-10C3-------------------------------
- INT 10 - CU Writer v1.4 - TEXT BAR
- AH = C3h
- ???
- Return: ???
- SeeAlso: AH=C0h,AH=C1h,AH=C4h
- --------A-10C4-------------------------------
- INT 10 - CU Writer v1.4 - TEXT MENU
- AH = C4h
- ???
- Return: ???
- SeeAlso: AH=C0h,AH=C1h,AH=C3h,AH=D0h
- --------V-10CB00-----------------------------
- INT 10 - UNCHAIN - SAVE CURRENT VGA REGISTERS
- AX = CB00h
- Note: combined with AX=CB06h, this function permits the use of video mode
- 13h together with the VGA's unchained mode
- SeeAlso: AX=CB06h,AX=CBFFh
- --------V-10CB01-----------------------------
- INT 10 - UNCHAIN - UPDATE PAGE 1 OFFSET
- AX = CB01h
- BX = offset of page 1
- Return: nothing
- Desc: inform UNCHAIN of the location of video page 1 in video memory; the
- default is 0000h
- SeeAlso: AX=CB02h,AX=CB03h,AX=CB04h,AX=CBFFh
- --------V-10CB02-----------------------------
- INT 10 - UNCHAIN - UPDATE PAGE 2 OFFSET
- AX = CB02h
- BX = offset of page 2
- Return: nothing
- Desc: inform UNCHAIN of the location of video page 2 in video memory; the
- default is 3E80h (16000, for 320x200)
- SeeAlso: AX=CB00h,AX=CB01h,AX=CB03h,AX=CB04h
- --------V-10CB03-----------------------------
- INT 10 - UNCHAIN - UPDATE PAGE 3 OFFSET
- AX = CB03h
- BX = offset of page 3
- Return: nothing
- Desc: inform UNCHAIN of the location of video page 3 in video memory; the
- default is 7D00h (32000, for 320x200)
- SeeAlso: AX=CB01h,AX=CB02h,AX=CB04h
- --------V-10CB04-----------------------------
- INT 10 - UNCHAIN - UPDATE PAGE 4 OFFSET
- AX = CB04h
- BX = offset of page 4
- Return: nothing
- Desc: inform UNCHAIN of the location of video page 4 in video memory; the
- default is BB80h (48000, for 320x200)
- SeeAlso: AX=CB01h,AX=CB02h,AX=CB03h,AX=CB05h
- --------V-10CB05-----------------------------
- INT 10 - UNCHAIN - SAVE PALETTE
- AX = CB05h
- Return: nothing
- SeeAlso: AX=CB00h,AX=CB06h
- --------V-10CB06-----------------------------
- INT 10 - UNCHAIN - RESTORE VGA REGISTERS
- AX = CB06h
- Return: nothing
- SeeAlso: AX=CB00h,AX=CB05h,AX=CBFFh
- --------V-10CBFF-----------------------------
- INT 10 - UNCHAIN - INSTALLATION CHECK
- AX = CBFFh
- Return: AX = CCBBh if installed
- Program: UNCHAIN is a TSR by Colin Buckley which permits use of Borland
- development tools with Mode X video in the absence of a second
- monitor
- SeeAlso: AX=CB00h,AX=CB01h,AX=CB06h
- --------V-10CC00-----------------------------
- INT 10 - VIDEO - UltraVision - GET STATUS (INSTALLATION CHECK)
- AX = CC00h
- SI = magic value 0000h (if checking version)
- Return: CX = product signature
- ABCDh UltraVision
- 5546h ('UF') UltraFont
- AL = Ultravision extensions
- 00h enabled
- FFh disabled
- AH = card designator
- BX:00F0h -> palette values (for compatibility with NEWFONT)
- DX = support for high resolution modes
- 00h not active
- 01h active
- SI = UltraVision version number (v1.2+), high byte=major,low byte=minor
- unchanged for versions <1.2
- Note: UltraFont is a simplified version of UltraVision for Toshiba;
- only the signature in CX and the status in AL will be returned
- SeeAlso: AX=CC01h,AX=CC02h
- --------V-10CC01-----------------------------
- INT 10 - VIDEO - UltraVision - DISABLE EXTENSIONS
- AX = CC01h
- Return: nothing
- Notes: subsequent BIOS calls will be passed through to previous handler
- should be followed immediately by mode set to restore normal EGA/VGA
- state
- SeeAlso: AX=CC02h
- --------V-10CC02-----------------------------
- INT 10 - VIDEO - UltraVision - ENABLE EXTENSIONS
- AX = CC02h
- Return: nothing
- Note: should be followed immediately by mode set to restore previous
- UltraVision state
- SeeAlso: AX=CC01h
- --------U-10CCAB-----------------------------
- INT 10 - HiFont - INSTALLATION CHECK
- AX = CCABh
- Return: AX = ABCCh
- Program: HiFont is a 8x19 font driver for standard VGA by Solar Designer
- --------V-10CD00-----------------------------
- INT 10 - VIDEO - UltraVision - LOAD ULTRAVISION PALETTE (color EGA,VGA)
- AX = CD00h
- CL = palette table number (01h-07h for v1.x, 01h-0Fh for v2+)
- DS:DX -> 16-byte palette register list (colors for registers 00h-0Fh)
- Return: nothing
- Notes: if palette locking is in effect for the current mode, the new colors
- will be displayed immediately; otherwise, the system reverts to the
- default palette
- palette table 0 is reserved for the default palette and cannot be set
- UltraVision always sets the border color to black
- SeeAlso: AX=CD01h,AX=CD02h
- --------V-10CD01-----------------------------
- INT 10 - VIDEO - UltraVision - SET PALETTE LOCKING STATUS (color EGA,VGA)
- AX = CD01h
- CL = palette locking value
- 00h none
- 01h text modes only (02h,03h)
- FFh all modes (all standard color text and graphics modes)
- Return: nothing
- Notes: intended for video modes with 16 or fewer colors
- SeeAlso: AX=1000h,AX=1002h,AX=CD00h,AX=CD03h
- --------V-10CD02-----------------------------
- INT 10 - VIDEO - UltraVision - GET ULTRAVISION PALETTE (EGA,VGA)
- AX = CD02h
- Return: CL = palette table number
- DS:DX -> 17-byte palette register list (see #0149)
- DS:SI -> current font names table (see #0150,#0151)
- Note: only the font names are valid on monochrome EGA systems
- SeeAlso: AX=1009h,AX=CD00h
-
- Format of UltraVision palette register list:
- Offset Size Description (Table 0149)
- 00h 16 BYTEs colors for palette registers 00h through 0Fh
- 10h BYTE border color
-
- Format of UltraVision v2+ current font names table:
- Offset Size standard EGA HiRes EGA VGA (Table 0150)
- 00h 8 BYTEs N/A F19 font F20 font
- 08h 8 BYTEs F14 font F14 font F14 font
- 10h 8 BYTEs N/A F11 font F10 font
- 18h 8 BYTEs F8 font F8 font F8 font
-
- Format of UltraVision v1.x current font names table:
- Offset Size HiRes EGA (Table 0151)
- 00h 8 BYTEs F19/F14 font
- 08h 8 BYTEs F11/F8 font
- --------V-10CD03-----------------------------
- INT 10 - VIDEO - UltraVision - GET PALETTE LOCKING STATUS (color EGA,VGA)
- AX = CD03h
- Return: CL = palette locking value
- 00h none
- 01h text modes only
- FFh all modes
- SeeAlso: AX=CD01h
- --------V-10CD04-----------------------------
- INT 10 - VIDEO - UltraVision - GET UltraVision TEXT MODE (EGA,VGA)
- AX = CD04h
- Return: AL = mode number (see #0152)
- SeeAlso: AH=0Fh,AX=CC00h,AH=CDh
-
- (Table 0152)
- Values for UltraVision video mode number:
- 11h 80x25
- 12h 80x43, 80x50
- 13h 80x34, 80x36
- 14h 80x60, 80x63
- 19h 94x25
- 1Ah 94x43, 94x50
- 1Bh 94x36
- 1Ch 94x63
- 21h 108x25
- 22h 108x43, 108x50
- 23h 107x34, 108x36
- 24h 108x60, 108x63
- 31h 120x25
- 32h 120x43, 120x50
- 33h 132x25
- 34h 132x44, 132x50
- 39h 120x36
- 3Ah 120x63
- 3Bh 132x36
- 3Ch 132x60
- Index: video modes;UltraVision
- --------V-10CD05-----------------------------
- INT 10 - VIDEO - UltraVision - SET CURSOR TYPE (EGA,VGA)
- AX = CD05h
- CL = type
- 00h line cursor
- FFh box cursor
- Return: nothing
- Note: sets default cursor type for text-based programs
- SeeAlso: AH=01h,AX=CD06h
- --------V-10CD06-----------------------------
- INT 10 - VIDEO - UltraVision - GET CURSOR TYPE (EGA,VGA)
- AX = CD06h
- Return: CL = type
- 00h line cursor
- FFh box cursor
- SeeAlso: AH=03h,AX=CD05h
- --------V-10CD07-----------------------------
- INT 10 - VIDEO - UltraVision v1.2+ - SET UNDERLINE STATUS (EGA,VGA)
- AX = CD07h
- CL = hardware underline status (see #0153)
- BL = foreground color for normal text (FFh = current)
- BH = foreground color for bright text (FFh = current)
- Return: CL = hardware underline status
- BL = current foreground color for normal text
- BH = current foreground color for bright text
- Notes: when underline or strikeout is enabled in color text modes, the
- specified colors will be assigned temporarily to colors 01h and 09h,
- allowing affected text to match non-underlined text. The color
- remapping uses values from the current onscreen palette regardless
- of the palette locking status (see AX=CD01h)
- specify the standard colors (BL=01h,BH=09h) to enable underline or
- strikeout without color remapping
- SeeAlso: AX=CD08h
-
- (Table 0153)
- Values for hardware underline status:
- 00h off (color systems only)
- 01h underline below characters
- 02h strike through characters
- --------V-10CD08-----------------------------
- INT 10 - VIDEO - UltraVision v1.2+ - GET UNDERLINE STATUS (EGA,VGA)
- AX = CD08h
- Return: CL = hardware underline status (see #0153)
- BL = foreground color for normal text
- BH = foreground color for bright text
- Note: only CL is valid on monochrome EGA systems
- SeeAlso: AX=CD07h
- --------V-10CD10-----------------------------
- INT 10 - VIDEO - UltraVision - LOAD USER FONT (EGA,VGA)
- AX = CD10h
- BH = bytes per character (08h,0Ah,0Bh,0Eh,13h,14h)
- CX = ABCDh load 9xN alternate font (v2+)
- else number of characters to load
- DX = character offset into font table
- DS:SI -> 8-byte ASCII font name
- ES:BP -> font definitions
- Return: AX = FFFFh if invalid font parameters
- Notes: loads the designated characters into UltraVision's resident font area
- should be followed by a video mode set to reload character generator
- SeeAlso: AX=1100h,AX=1103h
- --------V-10CD-------------------------------
- INT 10 - VIDEO - UltraVision - SET ULTRAVISION TEXT MODE (EGA,VGA)
- AH = CDh
- AL = text mode number (see #0152)
- Return: AX = CDCDh if invalid mode
- SeeAlso: AX=CD04h
- --------A-10D0-------------------------------
- INT 10 - CU Writer v1.4 - LOAD PICTURE
- AH = D0h
- ???
- Return: ???
- SeeAlso: AH=B0h"CU Writer",AH=C4h
- --------V-10D0-------------------------------
- INT 10 U - VIDEO - HP 100LX/200LX - SET ZOOM MODE
- AH = D0h
- AL = zoom mode
- 02h 80x25 mono
- 03h 80x25 color
- 80h 64x18 mono
- 81h 64x18 color
- 82h 40x25 mono
- 83h 40x25 color
- 84h 40x16 mono
- 85h 40x16 color
- Return: nothing
- Note: zoom mode can only be changed within zoom modes of the same color
- scheme; if needed, set to mono/color with AH=00h,AL=02h/03h; with
- mono video modes AL=07h or AL=21h only 80x25 and 40x16 will work
- the current zoom mode is stored in the BIOS data area at 0040h:009Fh
- SeeAlso: AH=D1h,AH=D4h
- --------V-10D000-----------------------------
- INT 10 - S3VBE/Core2.0 v3.00+ - INSTALLATION CHECK
- AX = D000h
- Return: AX = FFFFh if installed
- BX = resident code segment
- DX = version (binary, DH = major, DL = minor)
- Program: S3VBE/Core2.0 is a freeware TSR by Dietmar Meschede to provide
- VESA 2.0 services on S3-based video cards with VESA 1.2 BIOS
- SeeAlso: AX=D001h"S3VBE",AX=D002h"S3VBE",AX=D003h"S3VBE",AX=D005h"S3VBE"
- --------V-10D001-----------------------------
- INT 10 - S3VBE/Core2.0 v3.00+ - GET ACTIVE OPTIONS
- AX = D001h
- Return: AX = FFFFh if supported
- BX = currently active options (see #0154)
- SeeAlso: AX=D000h"S3VBE",AX=D002h"S3VBE"
-
- Bitfields for S3VBE options:
- Bit(s) Description (Table 0154)
- 0 VESA VBE v2.0 extensions enabled
- 1 linear frame buffer enabled
- 2 low-resolution video mode support enabled
- 8 never clear video memory during VBE mode set (v3.10+)
- ---debug options---
- 12 report VBE version 1.2 (v3.10+)
- 13 always fail AX=4F0Ah (v3.10+)
- 14 don't copy video mode list (v3.12+)
- SeeAlso: #0148
- --------V-10D002-----------------------------
- INT 10 - S3VBE/Core2.0 v3.00+ - SET ACTIVE OPTIONS
- AX = D002h
- BX = new active options (see #0154)
- Return: AX = FFFFh if supported
- SeeAlso: AX=D000h"S3VBE",AX=D001h"S3VBE"
- --------V-10D003-----------------------------
- INT 10 U - S3VBE/Core2.0 v3.10+ - GET VBE/Core CAPABILITIES
- AX = D003h
- Return: AX = FFFFh if supported
- BX = capabilities
- bit 0: SpeedUp = activate/deactivate linear addressing at
- A0000h for VBE functions 04h/05h
- SeeAlso: AX=D000h"S3VBE",AX=D001h"S3VBE",AX=D004h"S3VBE",AX=D005h"S3VBE"
- --------V-10D004-----------------------------
- INT 10 U - S3VBE/Core2.0 v3.10+ - ACTIVATE SPEED-UP
- AX = D004h
- Return: AX = FFFFh if supported
- BX = status
- 0000h SpeedUp activated
- 0001h SpeedUp not possible (wrong memory organization for mode)
- 0002h SpeedUp not possible (linear frame buffer active)
- Note: called by S3 SpeedUp (see AX=C000h)
- SeeAlso: AX=C000h"SpeedUp",AX=D000h"S3VBE",AX=D003h"S3VBE",AX=D005h"S3VBE"
- --------V-10D005-----------------------------
- INT 10 U - S3VBE/Core2.0 v3.10+ - DEACTIVATE SPEED-UP
- AX = D005h
- Return: AX = FFFFh if supported
- BX = status
- 0000h SpeedUp deactivated
- 0001h SpeedUp not possible (wrong memory organization for mode)
- 0002h SpeedUp not possible (linear frame buffer active)
- Notes: called by S3 SpeedUp (see AX=C000h)
- functions 06h-FFh (e.g. AX=D006h-D0FFh) are considered reserved by
- v3.10+ and return AX=5555h
- SeeAlso: AX=C000h"SpeedUp",AX=D000h"S3VBE",AX=D003h"S3VBE",AX=D004h"S3VBE"
- --------V-10D1-------------------------------
- INT 10 U - VIDEO - HP 100LX/200LX - INTERNAL - ???
- AH = D1h
- AL = 01h
- Return: ???
- Note: called by AH=D0h
- SeeAlso: AH=D0h,AH=D4h
- --------V-10D4-------------------------------
- INT 10 U - VIDEO - HP 100LX/200LX - INTERNAL - ???
- AH = D4h
- AL = 29h
- Return: ???
- Note: called by AH=D0h
- SeeAlso: AH=D0h,AH=D1h
- --------V-10D5-------------------------------
- INT 10 - Netroom SCRNCLK - ???
- AH = D5h
- ???
- Return: ???
- Program: SCRNCLK is a "cloaked" screen accelerator included with Netroom
- --------t-10DAAD-----------------------------
- INT 10 - TSRUNIT v1.10 - INSTALLATION CHECK
- AX = DAADh
- BX = check signature (different for each TSR)
- CX = 0000h
- Return: CX = return signature (nonzero) if installed
- ES = program segment prefix
- Program: TSRUNIT is a Turbo Pascal unit for creating TSRs by Nir Sofer
- --------V-10DFA5-----------------------------
- INT 10 U - VIDEO - Compaq ADAPT.COM - GET ??? DATA AREA
- AX = DFA5h
- Return: AX = BDBFh if supported
- ES:DI -> ??? data area
- BX = ES
- SeeAlso: AX=BFA0h
- --------V-10EE-------------------------------
- INT 10 - VIDEO - IBM "Private" Function
- AH = EEh
- SeeAlso: INT 13/AH=FFh"IBM"
- --------V-10EF-------------------------------
- INT 10 - VIDEO - MSHERC.COM - GET VIDEO ADAPTER TYPE AND MODE
- AH = EFh
- Return: DL = video adapter type
- 00h original Hercules
- 01h Hercules Plus (port 03BAh reads x001xxxxx)
- 02h Hercules InColor (port 03BAh reads x101xxxxx)
- FFh not a Hercules-compatible card (port 03BAh bit 7 not pulsing)
- DH = memory mode byte
- 00h "half" mode
- 01h "full" mode
- FFh not a Hercules-compatible card
- Program: MSHERC.COM/QBHERC.COM is a support program for the Microsoft Quick
- languages which makes their graphics libraries compatible with a
- Hercules card by adding video modes 08h and 88h, and supporting
- text in the new graphics modes.
- Notes: while in mode 08h or 88h, INT 10 supports the Hercules card much like
- a CGA.
- MSHERC performs an installation check by setting DL=FFh and testing
- whether it has been changed on return, which causes it to reinstall
- itself when no HGC is present (or HGC emulation has temporarily been
- disabled); a better installation check would be to use DX=80FFh and
- check whether DX has been changed
- reportedly returns DH=00h on some not-entirely-Hercules-compatible
- cards
- Index: installation check;MSHERC
- --------V-10F0-------------------------------
- INT 10 - EGA Register Interface Library - READ ONE REGISTER
- AH = F0h
- BL = register number
- BH = 00h
- DX = group index (see #0155)
- Return: BL = data
- Note: the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
- compatibility box, and others
- SeeAlso: AH=F1h,AH=F2h,INT 2F/AX=BC00h
-
- (Table 0155)
- Values for group index:
- Pointer/data chips
- 00h CRT Controller (25 reg) 3B4h mono modes, 3D4h color modes
- 08h Sequencer (5 registers) 3C4h
- 10h Graphics Controller (9 registers) 3CEh
- 18h Attribute Controller (20 registers) 3C0h
- Single registers
- 20h Miscellaneous Output register 3C2h
- 28h Feature Control register (3BAh mono modes, 3DAh color modes)
- 30h Graphics 1 Position register 3CCh
- 38h Graphics 2 Position register 3CAh
- --------V-10F1-------------------------------
- INT 10 - EGA Register Interface Library - WRITE ONE REGISTER
- AH = F1h
- DX = group index (see #0155)
- if single register:
- BL = value to write
- otherwise
- BL = register number
- BH = value to write
- Return: BL = data
- Note: the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
- compatibility box, and others
- SeeAlso: AX=7F05h,AH=F0h,AH=F3h
- --------V-10F2-------------------------------
- INT 10 - EGA Register Interface Library - READ REGISTER RANGE
- AH = F2h
- CH = starting register number
- CL = number of registers (>1)
- DX = group index (00h,08h,10h,18h) (see #0155)
- ES:BX -> buffer, CL bytes
- Return: nothing
- Note: the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
- compatibility box, and others
- SeeAlso: AH=F0h,AH=F3h
- --------V-10F3-------------------------------
- INT 10 - EGA Register Interface Library - WRITE REGISTER RANGE
- AH = F3h
- CH = starting register
- CL = number of registers (>1)
- DX = group index (00h,08h,10h,18h) (see #0155)
- ES:BX -> buffer, CL bytes
- Return: nothing
- Note: the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
- compatibility box, and others
- SeeAlso: AX=7F05h,AH=F1h,AH=F2h
- --------V-10F4-------------------------------
- INT 10 - EGA Register Interface Library - READ REGISTER SET
- AH = F4h
- CX = number of registers to read (>1)
- ES:BX -> table of register records (see #0156)
- Return: register values in table filled in
- Note: the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
- compatibility box, and others
- SeeAlso: AH=F0h,AH=F2h,AH=F5h
-
- Format of EGA RIL entries in table of register records:
- Offset Size Description (Table 0156)
- 00h WORD group index
- Pointer/data chips
- 00h CRTC (3B4h mono modes, 3D4h color modes)
- 08h Sequencer 3C4h
- 10h Graphics Controller 3CEh
- 18h Attribute Controller 3C0h
- Single registers
- 20h Miscellaneous Output register 3C2h
- 28h Feature Control register (3BAh mono modes, 3DAh color)
- 30h Graphics 1 Position register 3CCh
- 38h Graphics 2 Position register 3CAh
- 02h BYTE register number (0 for single registers)
- 03h BYTE register value
- --------V-10F5-------------------------------
- INT 10 - EGA Register Interface Library - WRITE REGISTER SET
- AH = F5h
- CX = number of registers to write (>1)
- ES:BX -> table of records (see #0156)
- Return: nothing
- Note: the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
- compatibility box, and others
- SeeAlso: AX=7F05h,AH=F1h,AH=F3h,AH=F4h
- --------V-10F6-------------------------------
- INT 10 - EGA Register Interface Library - REVERT TO DEFAULT REGISTERS
- AH = F6h
- Return: nothing
- Note: provided by the Microsoft Mouse driver, OS/2 compatibility box, and
- others
- SeeAlso: AH=F7h
- --------V-10F7-------------------------------
- INT 10 - EGA Register Interface Library - DEFINE DEFAULT REGISTER TABLE
- AH = F7h
- DX = port number
- Pointer/data chips
- 00h CRTC (3B4h mono modes, 3D4h color modes)
- 08h Sequencer 3C4h
- 10h Graphics Controller 3CEh
- 18h Attribute Controller 3C0h
- Single registers
- 20h Miscellaneous Output register 3C2h
- 28h Feature Control register (3BAh mono modes, 3DAh color modes)
- 30h Graphics 1 Position register 3CCh
- 38h Graphics 2 Position register 3CAh
- ES:BX -> table of one-byte entries, one byte to be written to each
- register
- Return: nothing
- Note: the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
- compatibility box, and others
- SeeAlso: AH=F6h
- --------V-10FA--BX0000-----------------------
- INT 10 - EGA Register Interface Library - INTERROGATE DRIVER
- AH = FAh
- BX = 0000h
- Return: BX = 0000h if RIL driver not present
- ES:BX -> EGA Register Interface version number, if present:
- byte 0 = major release number
- byte 1 = minor release number
- Note: the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
- compatibility box, and others
- SeeAlso: AH=F6h,INT 2F/AX=BC00h
- --------K-10FA-------------------------------
- INT 10 - FASTBUFF.COM - INSTALLATION CHECK
- AH = FAh
- Return: AX = 00FAh if installed
- ES = segment of resident code
- Program: FASTBUFF.COM is a keyboard speedup/screen blanking utility by David
- Steiner
- Index: screen saver;FASTBUFF
- --------V-10FE-------------------------------
- INT 10 - TopView - GET SHADOW BUFFER
- AH = FEh
- ES:DI -> assumed video buffer
- B800h:0000h color text/CGA graphics, B000h:0000h mono text,
- or A000h:0000h EGA/VGA graphics (RSIS environments only)
- Return: ES:DI -> actual video buffer for calling process
- Desc: Determine the address of the virtual screen to which the program
- should write instead of the actual video memory; this permits
- programs to be multitasked without interfering with each other's
- output, and allows memory managers to move the video memory to
- permit larger programs to be loaded.
- Notes: if no multitasker or RSIS-compliant environment is installed, ES:DI is
- returned unchanged; RSIS is the Relocated Screen Interface
- Specification
- for display pages other than 0, use AH=05h and AH=0Fh to determine
- whether a particular page exists
- TopView requires a call to AH=FFh to notify it that the screen has
- changed; DESQview will check for changes itself until the first call
- to AH=FFh
- SeeAlso: AH=05h,AX=5201h,AH=FFh,INT 15/AX=1024h,INT 21/AH=2Bh"DESQview"
- SeeAlso: INT 21/AH=ECh"DoubleDOS"
- --------V-10FF-------------------------------
- INT 10 - TopView - UPDATE SCREEN FROM SHADOW BUFFER
- AH = FFh
- CX = number of consecutive changed characters
- ES:DI -> first changed character in shadow buffer
- Return: nothing
- Notes: avoid CX=0000h
- DESQview will discontinue the automatic screen updating initiated by
- AH=FEh after this call
- not supported (ignored) by DESQview/X 1.0x
- SeeAlso: AH=93h,AH=FEh
- --------E-10FF-------------------------------
- INT 10 - DJ GO32.EXE 80386+ DOS extender - VIDEO EXTENSIONS
- AH = FFh
- AL = video mode (see #0157)
- Program: GO32.EXE is a DOS extender included as part of the 80386 port of the
- GNU C/C++ compiler by DJ Delorie and distributed as DJGPP
- SeeAlso: AH=00h,INT 21/AH=FFh"GO32"
-
- (Table 0157)
- Values for GO32 video mode number:
- 00h 80x25 text
- 01h default text
- 02h CXxDX text
- 03h biggest text
- 04h 320x200 graphics
- 05h default graphics
- 06h CXxDX graphics
- 07h biggest non-interlaced graphics
- 08h biggest graphics
- Index: video modes;GO32
- --------V-10FF-------------------------------
- INT 10 - VIDEO - Oak VGA BIOS v1.02+ - SET EMULATION
- AH = FFh
- AL = emulation
- 43h ('C') CGA emulation
- 45h ('E') EGA emulation
- 4Dh ('M') Hercules emulation
- 56h ('V') VGA emulation
- ES:DI -> signature string "Calamity"
- Return: VGA switched to suggested mode
- SeeAlso: AH=00h,AX=007Fh/BH=00h,AX=007Fh/BH=02h,AX=5F01h
- --------R-10FF00-----------------------------
- INT 10 - CARBON COPY PLUS v5.0 - CHECK IF CC CONNECTED TO CCHELP
- AX = FF00h
- Return: BL = state
- 00h not connected
- 01h connected
- SeeAlso: AX=FF01h,AX=FF02h
- --------R-10FF01-----------------------------
- INT 10 - CARBON COPY PLUS v5.0 - DISCONNECT AND RESET LINE
- AX = FF01h
- Return: nothing
- SeeAlso: AX=FF00h,AX=FF02h
- --------R-10FF02-----------------------------
- INT 10 - CARBON COPY PLUS v5.0 - GET LAST PHONE NUMBER DIALED
- AX = FF02h
- Return: ES:DI -> ASCIZ phone number
- SeeAlso: AX=FF00h,AX=FF01h
- --------C-11---------------------------------
- INT 11 - CPU-generated (80486+) - ALIGNMENT CHECK
- Desc: automatically generated by the CPU when the AC flag is set, the current
- privilege level is 3, and a misaligned memory access (WORD not on an
- even address or DWORD not on a multiple of 4) is made
- Note: not all V86 monitors allow the AC flag to be set, such as Turbo
- Debugger 386
- SeeAlso: INT 12"CPU"
- --------B-11---------------------------------
- INT 11 - BIOS - GET EQUIPMENT LIST
- Return: (E)AX = BIOS equipment list word (see #0158,#2886 at INT 4B"Tandy")
- Note: since older BIOSes do not know of the existence of EAX, the high word
- of EAX should be cleared before this call if any of the high bits
- will be tested
- SeeAlso: INT 4B"Tandy 2000",MEM 0040h:0010h
-
- Bitfields for BIOS equipment list:
- Bit(s) Description (Table 0158)
- 0 floppy disk(s) installed (number specified by bits 7-6)
- 1 80x87 coprocessor installed
- 3-2 number of 16K banks of RAM on motherboard (PC only)
- number of 64K banks of RAM on motherboard (XT only)
- 2 pointing device installed (PS)
- 3 unused (PS)
- 5-4 initial video mode
- 00 EGA, VGA, or PGA
- 01 40x25 color
- 10 80x25 color
- 11 80x25 monochrome
- 7-6 number of floppies installed less 1 (if bit 0 set)
- 8 DMA support installed (PCjr, Tandy 1400LT)
- DMA support *not* installed (Tandy 1000's)
- 11-9 number of serial ports installed
- 12 game port installed
- 13 serial printer attached (PCjr)
- internal modem installed (PC/Convertible)
- 15-14 number of parallel ports installed
- ---Compaq, Dell, and many other 386/486 machines--
- 23 page tables set so that Weitek coprocessor addressable in real mode
- 24 Weitek math coprocessor present
- ---Compaq Systempro---
- 25 internal DMA parallel port available
- 26 IRQ for internal DMA parallel port (if bit 25 set)
- 0 = IRQ5
- 1 = IRQ7
- 28-27 parallel port DMA channel
- 00 DMA channel 0
- 01 DMA channel 0 ???
- 10 reserved
- 11 DMA channel 3
- SeeAlso: INT 12"BIOS",#2886 at INT 4B"Tandy 2000"
- --------d-11----SI6A6A-----------------------
- INT 11 - Columbia Data Products Standard Device Level Protocol (SDLP) 1.6
- SI = 6A6Ah
- AH = command (see #0159)
- AL = SCSI Addressing (see #0160)
- Return: CF clear if successful
- DI = 6A6Ah if AH=01h on entry (maybe for all functions???)
- AH = ??? for command 01h
- CF set on error
- AL = error code
- SeeAlso: INT 21/AX=4402h"ASPI"
-
- (Table 0159)
- Values for SDLP command:
- 00h SDLP initialization
- 01h SDLP System Identify
- 02h simple read sectors
- 03h simple write sectors
- 04h simple verify sectors/seek to sector
- 05h get device size/type
- 06h ready unit
- 07h format unit
- 08h diagnostics
- 09h rewind
- 0Ah erase
- 0Bh write filemarks
- 0Ch space
- 0Dh prevent/allow media removal
- 0Eh load/unload media
- 0Fh reserved - returns good status
- 10h set block size
- 11h write setmark
- 12h set error level
- 13h get address of Request Sense Buffer
- 14h get SDLP error via Request Sense
- F0h Vendor Unique Function (WD7000-FASST2 only)
- FDh reset current SCSI HAC
- FEh get/set current SCSI HAC
- FFh execute SCSI command
-
- Bitfields for SDLP SCSI addressing:
- Bit(s) Description (Table 0160)
- 7-6 Host Adapter
- 5-3 SCSI Target ID
- 2-0 SCSI Target LUN (logical unit number)
- --------V-110225BX6900-----------------------
- INT 11 - Blank-It Screen Blanker - INSTALLATION CHECK
- AX = 0225h
- BX = 6900h
- Return: BL = 23h
- ES:DI -> ASCIZ "BLNKIT"
- Program: Blank-It is a resident screen blanker by Rhode Island Soft Systems,
- Inc.
- SeeAlso: AX=0225h/BX=6902h,AX=0225h/BX=6908h,AX=0225h/BX=6909h,INT 14/AX=AA01h
- Index: screen saver;Blank-It
- --------V-110225BX6901-----------------------
- INT 11 - Blank-It Screen Blanker - SET TIMEOUT FOR SCREEN BLANKING
- AX = 0225h
- BX = 6901h
- CX = timeout in timer ticks (18.2/second) or 0000h to disable timeout
- largest value is 59 minutes (FBACh or 64428)
- Return: CF clear if successful
- DI = 6A6Ah (possibly also 6A6Ah for all following functions)
- AH = ???
- CF set on error
- AL = error code
- SeeAlso: AX=0225h/BX=6900h,AX=0225h/BX=6904h
- Index: screen saver;Blank-It
- --------V-110225BX6902-----------------------
- INT 11 - Blank-It Screen Blanker - ENABLE THE SOFTWARE
- AX = 0225h
- BX = 6902h
- Return: CF clear if successful
- CF set on error
- AL = error code
- SeeAlso: AX=0225h/BX=6900h,AX=0225h/BX=6903h
- Index: screen saver;Blank-It
- --------V-110225BX6903-----------------------
- INT 11 - Blank-It Screen Blanker - DISABLE THE SOFTWARE
- AX = 0225h
- BX = 6903h
- Return: CF clear if successful
- CF set on error
- AL = error code
- SeeAlso: AX=0225h/BX=6900h,AX=0225h/BX=6902h
- Index: screen saver;Blank-It
- --------V-110225BX6904-----------------------
- INT 11 - Blank-It Screen Blanker - GET BLANKING TIMEOUT
- AX = 0225h
- BX = 6904h
- Return: CF clear if successful
- BX = timeout (see AX=0225h/BX=6901h)
- CF set on error
- AL = error code
- SeeAlso: AX=0225h/BX=6900h,AX=0225h/BX=6901h
- Index: screen saver;Blank-It
- --------V-110225BX6905-----------------------
- INT 11 - Blank-It Screen Blanker - ENABLE WINDOWS COMPATIBILITY MODE
- AX = 0225h
- BX = 6905h
- Return: CF clear if successful
- CF set on error
- AL = error code
- SeeAlso: AX=0225h/BX=6900h,AX=0225h/BX=6906h
- Index: screen saver;Blank-It
- --------V-110225BX6906-----------------------
- INT 11 - Blank-It Screen Blanker - DISABLE WINDOWS COMPATIBILITY MODE
- AX = 0225h
- BX = 6906h
- Return: CF clear if successful
- CF set on error
- AL = error code
- Program: Blank-It is a resident screen blanker by Rhode Island Soft Systems,
- Inc.
- SeeAlso: AX=0225h/BX=6900h,AX=0225h/BX=6905h
- Index: screen saver;Blank-It
- --------V-110225BX6907-----------------------
- INT 11 - Blank-It Screen Blanker - UNBLANK THE SCREEN
- AX = 0225h
- BX = 6907h
- Return: CF clear if successful
- CF set on error
- AL = error code
- SeeAlso: AX=0225h/BX=6900h,AX=0225h/BX=6908h
- Index: screen saver;Blank-It
- --------V-110225BX6908-----------------------
- INT 11 - Blank-It Screen Blanker - BLANK THE SCREEN
- AX = 0225h
- BX = 6908h
- Return: CF clear if successful
- CF set on error
- AL = error code
- SeeAlso: AX=0225h/BX=6900h,AX=0225h/BX=6907h
- Index: screen saver;Blank-It
- --------V-110225BX6909-----------------------
- INT 11 - Blank-It Screen Blanker - SET HOTKEY FOR MANUAL BLANKING
- AX = 0225h
- BX = 6909h
- CL = key scan code (see #0161)
- Return: CF clear if successful
- CF set on error
- AL = error code
- Program: Blank-It is a resident screen blanker by Rhode Island Soft Systems,
- Inc.
- SeeAlso: AX=0225h/BX=6900h
- Index: screen saver;Blank-It|hotkeys;Blank-It
-
- (Table 0161)
- Values for Blank-It hotkey scan code:
- 00h No hot key
- 1Dh Left CTRL
- 2Ah Left Shift
- 36h Right Shift
- 57h F11
- 58h F12
- SeeAlso: #0005
- --------G-1105D7-----------------------------
- INT 11 CU - Borland C++ IDE - INSTALLED CALLOUT
- AX = 05D7h
- BX = product ID (0088h)
- Note: called by the BC++ IDE when an application calls
- INT 12/AX=05D7h/BX=05D7h
- SeeAlso: INT 12/AX=05D7h/BX=05D7h
- Index: installation check;Borland C++ IDE
- --------F-1177-------------------------------
- INT 11 - RainbowFAX v1.3 - SFENGINE API - OPERATIONAL CONTROL
- AH = 77h
- AL = subfunction
- 01h request SFENGINE start
- Return: AX = 0001h
- 02h check if SFENGINE started
- Return: AX = 0000h or 0001h
- 03h request SFENGINE stop
- Return: AX = 0001h
- 04h check if SFENGINE stopped
- Return: AX = 0000h or 0001h
- 05h installation check
- Return: AX = 0001h
- 06h uninstall???
- BX:DX -> return address for successful uninstall???
- Return: (at caller's address)
- AX = 0000h
- else
- Return: AX = FFFFh (invalid subfunction)
- Return: ES:DX -> ASCIZ signature string "SFAX ENGINE V1.0"
- followed by internal data area???
- SeeAlso: AH=78h,AH=79h,AH=7Ah,AH=7Ch
- Index: installation check;RainbowFAX|installation check;SFENGINE
- Index: uninstall;RainbowFAX|uninstall;SFENGINE
- --------F-1178-------------------------------
- INT 11 - RainbowFAX v1.3 - SFENGINE API - ???
- AH = 78h
- AL = subfunction
- 01h set ???
- BX = new state for ???
- 0000h ???
- else ???
- Return: AX = 0001h
- 02h set ???
- BX = ???
- CX = ???
- Return: AX = 0001h
- 03h set ???
- BX = new state for ???
- 0000h ???
- else ???
- Return: AX = 0001h
- else
- Return: AX = FFFFh (invalid subfunction)
- SeeAlso: AH=77h,AH=79h,AH=7Ah,AH=7Ch
- --------F-1179-------------------------------
- INT 11 - RainbowFAX v1.3 - SFENGINE API - ???
- AH = 79h
- AL = subfunction
- 01h set ??? flag
- Return: AX = previous state (0000h already set, 0001h clear)
- 02h clear ??? flag (refer to subfunc 01h)
- Return: AX = 0001h
- 03h set ??? flag (different from subfn 02h or 04h)
- Return: AX = 0001h
- 04h clear ??? flag (different from subfn 02h or 03h)
- Return: AX = 0001h
- else
- Return: AX = FFFFh (invalid subfunction)
- SeeAlso: AH=77h,AH=78h,AH=7Ah,AH=7Ch
- --------F-117A-------------------------------
- INT 11 - RainbowFAX v1.3 - SFENGINE API - ???
- AH = 7Ah
- AL = subfunction
- 01h set ??? flag
- Return: AX = previous state (0000h already set, 0001h clear)
- 02h clear ??? flag
- Return: AX = 0001h
- 03h set ??? flag (different from subfn 02h)
- Return: AX = 0001h
- else
- Return: AX = FFFFh (invalid subfunction)
- SeeAlso: AH=77h,AH=78h,AH=79h,AH=7Ch
- --------F-117C01-----------------------------
- INT 11 - RainbowFAX v1.3 - SFENGINE API - SET ??? FLAG
- AX = 7C01h
- Return: AX = 0001h
- SeeAlso: AH=77h,AH=78h,AH=79h,AH=7Ah,AX=7C02h,AX=7C03h
- --------F-117C02-----------------------------
- INT 11 - RainbowFAX v1.3 - SFENGINE API - CLEAR ??? FLAG
- AX = 7C02h
- Return: AX = 0001h
- SeeAlso: AH=77h,AH=78h,AH=79h,AH=7Ah,AX=7C01h,AX=7C03h
- --------F-117C03-----------------------------
- INT 11 - RainbowFAX v1.3 - SFENGINE API - UNSUPPORTED FUNCTIONS
- AX = 7C03h-7CFFh
- Return: AX = FFFFh
- SeeAlso: AH=77h,AX=7C01h,AX=7C02h
- --------S-11BC--DX1954-----------------------
- INT 11 - BNU FOSSIL - INSTALLATION CHECK
- AH = BCh
- DX = 1954h
- Return: AX = 1954h
- ES:DX -> entry point of driver (instead of INT 14)
- SeeAlso: INT 14/AH=04h"FOSSIL"
- --------d-11FF--SI6A6A-----------------------
- INT 11 - WD7000 SDLP interface - EXECUTE GENERIC SCSI COMMAND
- AH = FFh
- SI = 6A6Ah
- AL = SCSI Addressing (see #0162)
- CX = bytes of data to be transmitted (max FFF0h)
- DH = 00h
- DL = length of SCSI Command Descriptor Block
- DS:DI -> SCSI Command Descriptor Block
- ES:BX -> data buffer
- Return: CF set on error
- AL = error code
- CF clear if successful
- Note: because of busmaster operations with WD7000FASST avoid accessing
- video memory directly; check 386 memory manager for VDS support.
- The WD7000XTAT works with programmed IO and does not have this
- limitation.
- SeeAlso: INT 21/AX=4402h"ASPI",INT 2F/AX=7F01h
-
- Bitfields for SDLP SCSI addressing:
- Bit(s) Description (Table 0162)
- 2-0 SCSI Target LUN (logical unit number)
- 5-3 SCSI Target ID
- 7 write flag, set for write operations, clear otherwise
- --------T-11FFFECXFFFE-----------------------
- INT 11 - BACK&FORTH (before v1.62) API
- AX = FFFEh
- CX = FFFEh
- BX = function
- 00h installation check
- Return: AX = installation state
- 0001h BNFHIGH and BNFLOW both loaded
- 0003h only BNFHIGH loaded
- else neither loaded
- 01h ???
- Return: DX:AX -> ???
- 02h ???
- 03h ???
- 04h ???
- 05h ??? switches current PSP segment and stack if BNFLOW has not
- yet announced itself installed
- 06h ???
- Return: AX = ???
- SeeAlso: INT 12/AX=FFFEh
- Index: installation check;BACK&FORTH
- --------B-12---------------------------------
- INT 12 - BIOS - GET MEMORY SIZE
- Return: AX = kilobytes of contiguous memory starting at absolute address 00000h
- Note: this call returns the contents of the word at 0040h:0013h; in PC and
- XT, this value is set from the switches on the motherboard
- SeeAlso: INT 11"BIOS",INT 2F/AX=4A06h,INT 4C"Tandy 2000",MEM 0040h:0013h
- --------C-12---------------------------------
- INT 12 - CPU-generated (Pentium) - MACHINE CHECK EXCEPTION
- Notes: Intel documents this interrupt as CPU model-dependent; for current
- Pentium processors, the reason for the machine check exception may
- be read from model-specific registers 00h and 01h (described, for
- example, in Christian Ludloff's 4P package)
- this exception is enabled by bit 6 of CR4
- SeeAlso: INT 11"CPU",MSR 00000000h,MSR 00000001h
- --------K-12----CX1806-----------------------
- INT 12 - KEYBUI v2.0+ - INSTALLATION CHECK
- CX = 1806h
- Return: AX = kilobytes of contiguous memory starting at absolute address 00000h
- CX = 1960h if installed
- Program: KEYBUI is a resident keyboard driver by Johan Zwiekhorst which allows
- accented characters and box drawing on standard QWERTY keyboards; it
- also provides break-to-DOS and screen blanking capabilities
- SeeAlso: INT 14/AX=AA01h
- Index: screen saver;KEYBUI
- --------d-12----CX1807-----------------------
- INT 12 - PARKER v2.0+ - INSTALLATION CHECK
- CX = 1807h
- Return: AX = kilobytes of contiguous memory starting at absolute address 00000h
- CX = 1961h if installed
- Program: PARKER is an optionally-resident hard disk parking program by Johan
- Zwiekhorst
- --------G-1205D7BX05D7-----------------------
- INT 12 U - Borland C++ IDE - INSTALLATION CHECK
- AX = 05D7h (1495d)
- BX = 05D7h
- Note: the BC++ IDE will call INT 11/AX=05D7h/BX=0088h if it is loaded
- SeeAlso: INT 11/AX=05D7h
- --------v-124350BX4920-----------------------
- INT 12 C - CPI-standard virus - "FRIEND" CHECK
- AX = 4350h
- BX = 4920h
- CX = AB46h
- DX = 554Eh
- Return: if friendly (not to be infected)
- CX:DX -> ASCIZ identity code (changes yearly)
- SeeAlso: INT 13/AX=EC00h"VIRUS",INT 13/AX=5001h,INT 21/AX=0B56h
- --------T-12FFFECXFFFE-----------------------
- INT 12 - Back&Forth v1.62+ - API
- AX = FFFEh
- CX = FFFEh
- BX = function
- 00h installation check
- Return: AX = 0001h installed
- else not loaded
- 01h (reserved)
- 02h build program ID list (shareware Back&Forth)
- ES:DI -> buffer of at least 100 bytes, to be filled with words
- Return: AX = number of programs defined
- ES:DI buffer filled with AX words
- 02h get memory statistics (Back&Forth Professional)
- Return: AX = available swap memory, KBytes
- BX = maximum task size, KBytes
- DX = fixed overhead per task, excluding video/macro
- storage
- 03h switch to specified task (task need not be open yet)
- DX = two-letter program ID
- Return: AX = status
- 0000h if task undefined
- 0001h task switch will occur when safe
- 04h (reserved)
- 05h (reserved)
- 06h get version (documented only for Back&Forth Professional)
- Return: AX = version * 100 (v1.71 = 00ABh)
- 07h spawn program (Back&Forth Professional only???)
- ES:DI -> BF_SPAWN record (see #0164)
- Return: AX = status
- 0000h if no task handles free
- 0001h spawn will occur when safe
- 08h get open tasks (documented only for Back&Forth Professional)
- ES:DI -> task info buffer (see #0163,#0165)
- Return: AX = number of open tasks (max 20)
- Note: the supplied buffer must be large enough to hold 21
- task entries
- 09h (reserved)
- ---Back&Forth Professional---
- 0Ah get active clipboard filename
- Return: DX:AX -> ASCIZ clipboard filename
- 0Bh get active task number
- AX = active task number (00h-13h)
- BX = number of tasks allocated
- DX = maximum number of tasks
- 0Ch (reserved)
- 0Dh (reserved)
- 0Eh (reserved)
- 0Fh stuff string into keyboard buffer
- ES:DI -> ASCIZ string to be stuffed
- Return: nothing
- 10h check if in graphics mode
- Return: AX = state
- 0000h color text mode
- 0004h mono text mode
- FFFFh graphics mode
- 11h get Back&Forth Professional user number
- Return: AX = user number (0000h-00FFh)
- 12h switch task by task number
- DX = task number
- Return: AX = status
- 0000h attempted to switch to active task
- 0001h task switch will occur when safe
- FFFFh invalid task number
- 13h delete (kill) task
- DX = task number
- Return: AX = status
- 0000h attempted to delete the active task
- 0001h successfully deleted
- FFFFh invalid task number
- Note: the active task number will change if the deleted task
- was lower in the task list than the active task
- 14h get next available task handle
- Return: AX = next available task handle
- FFFFh if task table is full
- Program: Back & Forth is a task switcher by Progressive Solutions, Inc.
- SeeAlso: INT 11/AX=FFFEh
- Index: installation check;BACK&FORTH
-
- Format of Back&Forth task info buffer:
- Offset Size Description (Table 0163)
- 00h 21 BYTEs ASCIZ task name
- 15h BYTE hotkey shift state (as for INT 16/AH=02h)
- 16h WORD hotkey scan code (see also #0005)
- 18h WORD program ID
- Index: hotkeys;Back&Forth
- SeeAlso: #0164,#0165
-
- Format of Back&Forth Professional BF_SPAWN record:
- Offset Size Description (Table 0164)
- 00h 21 BYTEs task description
- 15h BYTE flag: disable hotkeys
- 16h WORD environment size in bytes
- 18h BYTE hotkey shift flags
- 19h WORD hotkey scancode
- 1Bh WORD maximum number of EMS pages
- 1Dh WORD required memory in KBytes
- 1Fh 3 BYTEs DESQview-style two-letter program ID
- 22h 13 BYTEs base name of program to be run (no path or extension)
- 2Fh 66 BYTEs directory from which to start program
- 71h 66 BYTEs initial current directory for program
- SeeAlso: #0163,#0165
-
- Format of Back&Forth Professional BF_TASK record:
- Offset Size Description (Table 0165)
- 00h DWORD Unix-style task start time (seconds since 1/1/1970)
- 04h 21 BYTEs task description
- 19h DWORD elapsed time in task (seconds)
- 1Dh WORD task ID
- 1Fh BYTE task hotkey keyboard flags
- 20h WORD task hotkey scan code (see also #0005)
- 22h DWORD time task was suspended/exited
- 26h WORD task handle
- SeeAlso: #0163,#0164
- --------!---Section--------------------------
- Interrupt List, part 2 of 16
- Copyright (c) 1989,1990,1991,1992,1993,1994,1995,1996,1997 Ralf Brown
- --------B-1300-------------------------------
- INT 13 - DISK - RESET DISK SYSTEM
- AH = 00h
- DL = drive (if bit 7 is set both hard disks and floppy disks reset)
- Return: AH = status (see #0166)
- CF clear if successful (returned AH=00h)
- CF set on error
- Note: forces controller to recalibrate drive heads (seek to track 0)
- for PS/2 35SX, 35LS, 40SX and L40SX, as well as many other systems,
- both the master drive and the slave drive respond to the Reset
- function that is issued to either drive
- SeeAlso: AH=0Dh,AH=11h,INT 21/AH=0Dh,INT 4D/AH=00h"TI Professional"
- SeeAlso: INT 56"Tandy 2000",MEM 0040h:003Eh
- --------B-1301-------------------------------
- INT 13 - DISK - GET STATUS OF LAST OPERATION
- AH = 01h
- DL = drive (bit 7 set for hard disk)
- Return: CF clear if successful (returned status 00h)
- CF set on error
- AH = status of previous operation (see #0166)
- Note: some BIOSes return the status in AL; the PS/2 Model 30/286 returns the
- status in both AH and AL
- SeeAlso: AH=00h,INT 4D/AH=01h,MEM 0040h:0041h,MEM 0040h:0074h
-
- (Table 0166)
- Values for disk operation status:
- 00h successful completion
- 01h invalid function in AH or invalid parameter
- 02h address mark not found
- 03h disk write-protected
- 04h sector not found/read error
- 05h reset failed (hard disk)
- 05h data did not verify correctly (TI Professional PC)
- 06h disk changed (floppy)
- 07h drive parameter activity failed (hard disk)
- 08h DMA overrun
- 09h data boundary error (attempted DMA across 64K boundary or >80h sectors)
- 0Ah bad sector detected (hard disk)
- 0Bh bad track detected (hard disk)
- 0Ch unsupported track or invalid media
- 0Dh invalid number of sectors on format (PS/2 hard disk)
- 0Eh control data address mark detected (hard disk)
- 0Fh DMA arbitration level out of range (hard disk)
- 10h uncorrectable CRC or ECC error on read
- 11h data ECC corrected (hard disk)
- 20h controller failure
- 31h no media in drive (IBM/MS INT 13 extensions)
- 32h incorrect drive type stored in CMOS (Compaq)
- 40h seek failed
- 80h timeout (not ready)
- AAh drive not ready (hard disk)
- B0h volume not locked in drive (INT 13 extensions)
- B1h volume locked in drive (INT 13 extensions)
- B2h volume not removable (INT 13 extensions)
- B3h volume in use (INT 13 extensions)
- B4h lock count exceeded (INT 13 extensions)
- B5h valid eject request failed (INT 13 extensions)
- BBh undefined error (hard disk)
- CCh write fault (hard disk)
- E0h status register error (hard disk)
- FFh sense operation failed (hard disk)
- SeeAlso: #M022
- --------B-1302-------------------------------
- INT 13 - DISK - READ SECTOR(S) INTO MEMORY
- AH = 02h
- AL = number of sectors to read (must be nonzero)
- CH = low eight bits of cylinder number
- CL = sector number 1-63 (bits 0-5)
- high two bits of cylinder (bits 6-7, hard disk only)
- DH = head number
- DL = drive number (bit 7 set for hard disk)
- ES:BX -> data buffer
- Return: CF set on error
- if AH = 11h (corrected ECC error), AL = burst length
- CF clear if successful
- AH = status (see #0166)
- AL = number of sectors transferred (only valid if CF set for some
- BIOSes)
- Notes: errors on a floppy may be due to the motor failing to spin up quickly
- enough; the read should be retried at least three times, resetting
- the disk with AH=00h between attempts
- most BIOSes support "multitrack" reads, where the value in AL
- exceeds the number of sectors remaining on the track, in which
- case any additional sectors are read beginning at sector 1 on
- the following head in the same cylinder; the CONFIG.SYS command
- MULTITRACK can be used to force DOS to split disk accesses which
- would wrap across a track boundary into two separate calls
- the IBM AT BIOS and many other BIOSes use only the low four bits of
- DH (head number) since the WD-1003 controller which is the standard
- AT controller (and the controller that IDE emulates) only supports
- 16 heads
- AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more
- than 1024 cylinders by placing bits 10 and 11 of the cylinder number
- into bits 6 and 7 of DH
- under Windows95, a volume must be locked (see INT 21/AX=440Dh/CX=084Bh)
- in order to perform direct accesses such as INT 13h reads and writes
- SeeAlso: AH=03h,AH=0Ah,AH=06h"V10DISK.SYS",AH=21h"PS/1",AH=42h"IBM"
- SeeAlso: INT 21/AX=440Dh/CX=084Bh,INT 4D/AH=02h
- --------B-1303-------------------------------
- INT 13 - DISK - WRITE DISK SECTOR(S)
- AH = 03h
- AL = number of sectors to write (must be nonzero)
- CH = low eight bits of cylinder number
- CL = sector number 1-63 (bits 0-5)
- high two bits of cylinder (bits 6-7, hard disk only)
- DH = head number
- DL = drive number (bit 7 set for hard disk)
- ES:BX -> data buffer
- Return: CF set on error
- CF clear if successful
- AH = status (see #0166)
- AL = number of sectors transferred
- (only valid if CF set for some BIOSes)
- Notes: errors on a floppy may be due to the motor failing to spin up quickly
- enough; the write should be retried at least three times, resetting
- the disk with AH=00h between attempts
- most BIOSes support "multitrack" writes, where the value in AL
- exceeds the number of sectors remaining on the track, in which
- case any additional sectors are written beginning at sector 1 on
- the following head in the same cylinder; the CONFIG.SYS command
- MULTITRACK can be used to force DOS to split disk accesses which
- would wrap across a track boundary into two separate calls
- the IBM AT BIOS and many other BIOSes use only the low four bits of
- DH (head number) since the WD-1003 controller which is the standard
- AT controller (and the controller that IDE emulates) only supports
- 16 heads
- AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more
- than 1024 cylinders by placing bits 10 and 11 of the cylinder number
- into bits 6 and 7 of DH
- under Windows95, an application must issue a physical volume lock on
- the drive via INT 21/AX=440Dh before it can successfully write to
- the disk with this function
- SeeAlso: AH=02h,AH=0Bh,AH=07h"V10DISK.SYS",AH=22h"PS/1",AH=43h"IBM"
- SeeAlso: INT 21/AX=440Dh"DOS 3.2+",INT 4D/AH=03h
- --------B-1304-------------------------------
- INT 13 - DISK - VERIFY DISK SECTOR(S)
- AH = 04h
- AL = number of sectors to verify (must be nonzero)
- CH = low eight bits of cylinder number
- CL = sector number 1-63 (bits 0-5)
- high two bits of cylinder (bits 6-7, hard disk only)
- DH = head number
- DL = drive number (bit 7 set for hard disk)
- ES:BX -> data buffer (PC,XT,AT with BIOS prior to 11/15/85)
- Return: CF set on error
- CF clear if successful
- AH = status (see #0166)
- AL = number of sectors verified
- Notes: errors on a floppy may be due to the motor failing to spin up quickly
- enough; the write should be retried at least three times, resetting
- the disk with AH=00h between attempts
- this function does not compare the disk with memory, it merely
- checks whether the sector's stored CRC matches the data's actual CRC
- the IBM AT BIOS and many other BIOSes use only the low four bits of
- DH (head number) since the WD-1003 controller which is the standard
- AT controller (and the controller that IDE emulates) only supports
- 16 heads
- AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more
- than 1024 cylinders by placing bits 10 and 11 of the cylinder number
- into bits 6 and 7 of DH
- SeeAlso: AH=02h,AH=44h,INT 4D/AH=04h,INT 4D/AH=06h
- --------B-1305-------------------------------
- INT 13 - FLOPPY - FORMAT TRACK
- AH = 05h
- AL = number of sectors to format
- CH = track number
- DH = head number
- DL = drive number
- ES:BX -> address field buffer (see #0167)
- Return: CF set on error
- CF clear if successful
- AH = status (see #0166)
- Notes: on AT or higher, call AH=17h first
- the number of sectors per track is read from the diskette parameter
- table pointed at by INT 1E
- SeeAlso: AH=05h"FIXED",AH=17h,AH=18h,INT 1E
-
- Format of floppy format address field buffer entry (one per sector in track):
- Offset Size Description (Table 0167)
- 00h BYTE track number
- 01h BYTE head number (0-based)
- 02h BYTE sector number
- 03h BYTE sector size (00h=128 bytes, 01h=256 bytes, 02h=512, 03h=1024)
- --------B-1305-------------------------------
- INT 13 - FIXED DISK - FORMAT TRACK
- AH = 05h
- AL = interleave value (XT-type controllers only)
- ES:BX -> 512-byte format buffer
- the first 2*(sectors/track) bytes contain F,N for each sector
- F = sector type
- 00h for good sector
- 20h to unassign from alternate location
- 40h to assign to alternate location
- 80h for bad sector
- N = sector number
- CH = cylinder number (bits 8,9 in high bits of CL)
- CL = high bits of cylinder number (bits 7,6)
- DH = head
- DL = drive
- Return: CF set on error
- CF clear if successful
- AH = status code (see #0166)
- Notes: AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more
- than 1024 cylinders by placing bits 10 and 11 of the cylinder number
- into bits 6 and 7 of DH
- for XT-type controllers on an AT or higher, AH=0Fh should be called
- first
- the IBM AT BIOS and many other BIOSes use only the low four bits of
- DH (head number) since the WD-1003 controller which is the standard
- AT controller (and the controller that IDE emulates) only supports
- 16 heads
- not all controller support sector types 20h and 40h
- under Windows95, an application must issue a physical volume lock on
- the drive via INT 21/AX=440Dh before it can successfully write to
- the disk with this function
- SeeAlso: AH=05h"FLOPPY",AH=06h"FIXED",AH=07h"FIXED",AH=0Fh,AH=18h,AH=1Ah
- --------d-1305-------------------------------
- INT 13 - Future Domain SCSI BIOS - SEND SCSI MODE SELECT COMMAND
- AH = 05h
- DL = hard drive ID
- ES:BX -> mode select data (see #0168)
- Return: CF set on error
- CF clear if successful
- AH = status code (see #0166)
- Notes: this function can be called before AH=07h"SCSI" or AH=06h"SCSI" to
- format a SCSI disk with the desired parameters
- the mode select data below is from the SCSI-1 specification
- the TMC-950 does not support any Future Domain BIOS calls; instead,
- it provides a full CAM implementation (see INT 4F/AX=8100h)
- SeeAlso: AH=06h"SCSI",AH=07h"SCSI",INT 4F/AX=8100h
-
- Format of Future Domain SCSI mode select data:
- Offset Size Description (Table 0168)
- 00h BYTE number of bytes of remaining data (12 + vendor unique length)
- 01h BYTE reserved (0)
- 02h BYTE medium type (0 for hard disk)
- 03h BYTE reserved (0)
- 04h BYTE block descriptor length (8)
- 05h BYTE density code (0 for hard disk)
- 06h 3 BYTEs (big-endian) number of blocks (000000h for entire disk)
- 09h BYTE reserved (0)
- 0Ah 3 BYTEs (big-endian) block length (512 standard, or 256)
- 0Dh ??? vendor-specific parameter bytes (optional)
- --------d-13057FSI324D-----------------------
- INT 13 - 2M - FORMAT TRACK
- AX = 057Fh
- SI = 324Dh ("2M")
- CH = track number
- DH = head number
- DL = drive number
- ES:BX -> boot sector of future 2M diskette
- Return: CF set on error
- CF clear if successful
- AH = status (see #0166)
- Program: 2M is a TSR developed by Ciriaco Garcia de Celis to support
- non standard diskettes with 820-902/1476-1558K (5.25 DD/HD)
- and 984-1066/1804-1886K/3608-3772K (3.5 DD/HD/ED)
- Notes: it is not necessary to call AH=17h or AH=18h first (will be ignored)
- the diskette format must always begin on cylinder 0 head 0
- the boot sector can be obtained from an already-formatted 2M diskette
- (by calling AH=02h with head number 00h in 2M v1.x and with head
- number 80h for 2M v2+)
- the installation check for 2M must search for a "CiriSOFT:2M:1.3" or
- "CiriSOFT:2MX:3.0" or similar (recomended ":2M:", ":2MX:", or ":2MB:"
- substrings) in CiriSOFT TSR interface
- since 2M v2.0, the BOOT sector is emulated using the first physical
- sector of FAT2; the second-sixth physical sectors of FAT2 in HD or ED
- diskettes store the SuperBOOT code. To skip the FAT2 emulation (using
- FAT1) of 2M, in order to read the SuperBOOT code, head number must be
- 80h-81h instead 0-1 (bit 7 active) in standard read/write functions.
- This lets diskcopy programs format 2M target diskettes copying
- SuperBOOT code. If the target diskette is already 2MF formatted
- (containing boot code) this trick it is not necessary.
- when using STV technology (offset 65 of boot sector equal to 1) it is
- necessary to write the full track before formatting (except track 0
- side 0) to complete the format and skip future CRC errors on read; in
- track 0 side 1 the head used must be 81h instead 1. Diskcopy programs
- may do a format-write-verify sequential phases to improve performance
- SeeAlso: AH=05h"FLOPPY",AH=18h/CX=5055h,INT 2F"CiriSOFT"
- --------B-1306-------------------------------
- INT 13 - FIXED DISK - FORMAT TRACK AND SET BAD SECTOR FLAGS (XT,PORT)
- AH = 06h
- AL = interleave value
- CH = cylinder number (bits 8,9 in high bits of CL)
- CL = sector number
- DH = head
- DL = drive
- Return: AH = status code (see #0166)
- Note: AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more
- than 1024 cylinders by placing bits 10 and 11 of the cylinder number
- into bits 6 and 7 of DH
- SeeAlso: AH=05h"FIXED",AH=07h"FIXED"
- --------d-1306-------------------------------
- INT 13 - Future Domain SCSI BIOS - FORMAT DRIVE WITH BAD SECTOR MAPPING
- AH = 06h
- AL = interleave
- (0 = default, 1 = consecutive sectors, 2 - 255 = vendor unique)
- DL = hard drive ID
- DH = defect list info (see #0169)
- ES:BX -> defect table A, B or C (see #0170,#0171,#0172)
- Return: CF set on error
- CF clear if successful
- AH = status code (see #0166)
- Notes: block addresses must be in ascending order (for table B, cylinder is
- most significant, byte from index least significant; for table C,
- cylinder is most significant, sector number least significant)
- table B defect bytes from index of FFFFFFFFh indicates that the entire
- track shall be reassigned
- table C defect sector number of FFFFFFFFh indicates that the entire
- track shall be reassigned
- the TMC-950 does not support any Future Domain BIOS calls; instead,
- it provides a full CAM implementation (see INT 4F/AX=8100h)
- SeeAlso: AH=05h"SCSI",AH=06h"FIXED",AH=07h"SCSI"
-
- Bitfields for Future Domain SCSI defect list info:
- Bit(s) Description (Table 0169)
- 7-5 drive LUN
- 4 defect list is available
- 3 defect list is complete (erase drive's defect list)
- 2-0 defect table format
- (000=use defect table A, 100=use defect table B,
- 101=use defect table C)
-
- Format of Future Domain SCSI defect table A:
- Offset Size Description (Table 0170)
- 00h WORD number of bytes remaining in table
- 02h BYTE reserved (0)
- 03h BYTE reserved (0)
- 04h WORD (big-endian) defect list length (4*number of defects)
- 06h 4 DWORDs (big-endian) defect block addresses
-
- Format of Future Domain SCSI defect table B:
- Offset Size Description (Table 0171)
- 00h WORD number of bytes remaining in table
- 02h BYTE reserved (0)
- 03h BYTE reserved (0)
- 04h WORD (big-endian) defect list length (8*number of defects)
- 06h 8N BYTEs defect list [array] (see #0173)
-
- Format of Future Domain SCSI defect table C:
- Offset Size Description (Table 0172)
- 00h WORD number of bytes remaining in table
- 02h BYTE reserved (0)
- 03h BYTE reserved (0)
- 04h WORD (big-endian) defect list length (8*number of defects)
- 06h 8N BYTEs defect list [array] (see #0173)
-
- Format of Future Domain SCSI defect list entry:
- Offset Size Description (Table 0173)
- 00h 3 BYTEs (big-endian) cylinder number of defect
- 03h BYTE head number of defect
- 04h DWORD (big-endian) defect bytes from index
- --------d-1306-------------------------------
- INT 13 - Adaptec AHA-154xA/Bustek BT-542 BIOS - IDENTIFY SCSI DEVICES
- AH = 06h
- Return: AH = status code (see #0166)
- CF clear if successful
- AL = first drive supported
- (80h nonconcurrent operation, 81h concurrent operation)
- CF set on error
- Desc: determine the number of the first supported SCSI drive
- Note: the return value is 80h when two SCSI drives are supported, 81h if
- only one SCSI drive is installed
- SeeAlso: AH=08h"PC",#0656 at INT 1A/AX=B102h
- --------d-1306-------------------------------
- INT 13 - V10DISK.SYS - READ DELETED SECTORS
- AH = 06h
- AL = number of sectors
- CH = cylinder number (bits 8,9 in high bits of CL)
- CL = sector number
- DH = head
- DL = drive
- ES:BX -> buffer
- Return: AH = status code (see #0166)
- Program: V10DISK.SYS is a driver for the Flagstaff Engineering 8" floppies
- SeeAlso: AH=02h,AH=07h"V10DISK.SYS"
- --------B-1307-------------------------------
- INT 13 - FIXED DISK - FORMAT DRIVE STARTING AT GIVEN TRACK (XT,PORT)
- AH = 07h
- AL = interleave value (XT only)
- ES:BX = 512-byte format buffer (see AH=05h)
- CH = cylinder number (bits 8,9 in high bits of CL)
- CL = sector number
- DH = head
- DL = drive
- Return: AH = status code (see #0166)
- Note: AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more
- than 1024 cylinders by placing bits 10 and 11 of the cylinder number
- into bits 6 and 7 of DH
- SeeAlso: AH=05h"FIXED",AH=06h"FIXED",AH=1Ah
- --------d-1307-------------------------------
- INT 13 - Future Domain SCSI BIOS - FORMAT DRIVE
- AH = 07h
- AL = interleave (0 = default, 1 = consecutive sectors,
- 2 - 255 = vendor unique)
- DL = hard drive ID
- Return: CF set on error
- CF clear if successful
- AH = status code (see #0166)
- SeeAlso: AH=05h"SCSI",AH=06h"SCSI",AH=07h"FIXED"
- --------d-1307-------------------------------
- INT 13 - V10DISK.SYS - WRITE DELETED SECTORS
- AH = 07h
- AL = number of sectors
- CH = cylinder number (bits 8,9 in high bits of CL)
- CL = sector number
- DH = head
- DL = drive
- ES:BX -> buffer
- Return: AH = status code (see #0166)
- Program: V10DISK.SYS is a driver for the Flagstaff Engineering 8" floppies
- SeeAlso: AH=03h,AH=06h"V10DISK.SYS"
- --------B-1308-------------------------------
- INT 13 - DISK - GET DRIVE PARAMETERS (PC,XT286,CONV,PS,ESDI,SCSI)
- AH = 08h
- DL = drive (bit 7 set for hard disk)
- Return: CF set on error
- AH = status (07h) (see #0166)
- CF clear if successful
- AH = 00h
- AL = 00h on at least some BIOSes
- BL = drive type (AT/PS2 floppies only) (see #0174)
- CH = low eight bits of maximum cylinder number
- CL = maximum sector number (bits 5-0)
- high two bits of maximum cylinder number (bits 7-6)
- DH = maximum head number
- DL = number of drives
- ES:DI -> drive parameter table (floppies only)
- Notes: may return successful even though specified drive is greater than the
- number of attached drives of that type (floppy/hard); check DL to
- ensure validity
- for systems predating the IBM AT, this call is only valid for hard
- disks, as it is implemented by the hard disk BIOS rather than the
- ROM BIOS
- Toshiba laptops with HardRAM return DL=02h when called with DL=80h,
- but fail on DL=81h. The BIOS data at 40h:75h correctly reports 01h.
- may indicate only two drives present even if more are attached; to
- ensure a correct count, one can use AH=15h to scan through possible
- drives
- for BIOSes which reserve the last cylinder for testing purposes, the
- cylinder count is automatically decremented
- on PS/1s with IBM ROM DOS 4, nonexistent drives return CF clear,
- BX=CX=0000h, and ES:DI = 0000h:0000h
- the PC-Tools PCFORMAT program requires that AL=00h before it will
- proceed with the formatting
- SeeAlso: AH=06h"Adaptec",AH=13h"SyQuest",AH=48h,AH=15h,INT 1E
- SeeAlso: INT 41"HARD DISK 0"
-
- (Table 0174)
- Values for diskette drive type:
- 01h 360K
- 02h 1.2M
- 03h 720K
- 04h 1.44M
- 05h ??? (reportedly an obscure drive type shipped on some IBM machines)
- 2.88M on some machines (at least AMI 486 BIOS)
- 06h 2.88M
- 10h ATAPI Removable Media Device
- --------d-1308-------------------------------
- INT 13 - V10DISK.SYS - SET FORMAT
- AH = 08h
- AL = number of sectors
- CH = cylinder number (bits 8,9 in high bits of CL)
- CL = sector number
- DH = head
- DL = drive
- Return: AH = status code (see #0166)
- Program: V10DISK.SYS is a driver for the Flagstaff Engineering 8" floppies
- Note: details not available
- SeeAlso: AH=03h,AH=06h"V10DISK.SYS"
- --------y-130800DLF0-------------------------
- INT 13 - SecureDrive - INSTALLATION CHECK
- AX = 08000h
- DL = F0h
- Return: AX = EDCBh for version 1.0-1.2
- AX = EDCCh for version 1.3
- CX = code segment
- DX = data address within code segment
- Program: SecureDrive by Mike Ingle <mikeingle@delphi.com> allows you to create
- an encrypted partition on your harddisk.
- --------B-1309-------------------------------
- INT 13 - HARD DISK - INITIALIZE CONTROLLER WITH DRIVE PARAMETERS (AT,PS)
- AH = 09h
- DL = drive (80h for first, 81h for second)
- Return: CF clear if successful
- CF set on error
- AH = status (see #0166)
- Notes: on the PC and XT, this function uses the parameter table pointed at by
- INT 41
- on the AT and later, this function uses the parameter table pointed at
- by INT 41 if DL=80h, and the parameter table pointed at by INT 46 if
- DL=81h
- SeeAlso: INT 41"HARD DISK 0",INT 46"HARD DISK 1"
- --------B-130A-------------------------------
- INT 13 - HARD DISK - READ LONG SECTOR(S) (AT and later)
- AH = 0Ah
- AL = number of sectors (01h may be only value supported)
- CH = low eight bits of cylinder number
- CL = sector number (bits 5-0)
- high two bits of cylinder number (bits 7-6)
- DH = head number
- DL = drive number (80h = first, 81h = second)
- ES:BX -> data buffer
- Return: CF clear if successful
- CF set on error
- AH = status (see #0166)
- AL = number of sectors transferred
- Notes: this function reads in four to seven bytes of error-correcting code
- along with each sector's worth of information
- data errors are not automatically corrected, and the read is aborted
- after the first sector with an ECC error
- used for diagnostics only on PS/2 systems; IBM officially classifies
- this function as optional
- SeeAlso: AH=02h,AH=0Bh,MEM 0040h:0074h
- --------B-130B-------------------------------
- INT 13 - HARD DISK - WRITE LONG SECTOR(S) (AT and later)
- AH = 0Bh
- AL = number of sectors (01h may be only value supported)
- CH = low eight bits of cylinder number
- CL = sector number (bits 5-0)
- high two bits of cylinder number (bits 7-6)
- DH = head number
- DL = drive number (80h = first, 81h = second)
- ES:BX -> data buffer
- Return: CF clear if successful
- CF set on error
- AH = status (see #0166)
- AL = number of sectors transferred
- Notes: each sector's worth of data must be followed by four to seven bytes of
- error-correction information
- used for diagnostics only on PS/2 systems; IBM officially classifies
- this function as optional
- SeeAlso: AH=03h,AH=0Ah,MEM 0040h:0074h
- --------B-130C-------------------------------
- INT 13 - HARD DISK - SEEK TO CYLINDER
- AH = 0Ch
- CH = low eight bits of cylinder number
- CL = sector number (bits 5-0)
- high two bits of cylinder number (bits 7-6)
- DH = head number
- DL = drive number (80h = first, 81h = second hard disk)
- Return: CF set on error
- CF clear if successful
- AH = status (see #0166)
- SeeAlso: AH=00h,AH=02h,AH=0Ah,AH=47h
- --------B-130D-------------------------------
- INT 13 - HARD DISK - RESET HARD DISKS
- AH = 0Dh
- DL = drive number (80h = first, 81h = second hard disk)
- Return: CF set on error
- CF clear if successful
- AH = status (see #0166)
- Notes: reinitializes the hard disk controller, resets the specified drive's
- parameters, and recalibrates the drive's heads (seek to track 0)
- for PS/2 35SX, 35LS, 40SX and L40SX, as well as many other systems,
- both the master drive and the slave drive respond to the Reset
- function that is issued to either drive
- not for PS/2 ESDI drives
- SeeAlso: AH=00h,INT 21/AH=0Dh
- --------B-130E-------------------------------
- INT 13 - HARD DISK - READ SECTOR BUFFER (XT only)
- AH = 0Eh
- DL = drive number (80h = first, 81h = second hard disk)
- ES:BX -> buffer
- Return: CF set on error
- CF clear if successful
- AH = status code (see #0166)
- Notes: transfers controller's sector buffer. No data is read from the drive
- used for diagnostics only on PS/2 systems
- SeeAlso: AH=0Ah
- --------B-130F-------------------------------
- INT 13 - HARD DISK - WRITE SECTOR BUFFER (XT only)
- AH = 0Fh
- DL = drive number (80h = first, 81h = second hard disk)
- ES:BX -> buffer
- Return: CF set on error
- CF clear if successful
- AH = status code (see #0166)
- Notes: does not write data to the drive
- should be called before formatting to initialize an XT-type
- controller's sector buffer
- used for diagnostics only on PS/2 systems
- SeeAlso: AH=0Bh
- --------B-1310-------------------------------
- INT 13 - HARD DISK - CHECK IF DRIVE READY
- AH = 10h
- DL = drive number (80h = first, 81h = second hard disk)
- Return: CF set on error
- CF clear if successful
- AH = status (see #0166 at AH=01h)
- SeeAlso: AH=11h
- --------B-1311-------------------------------
- INT 13 - HARD DISK - RECALIBRATE DRIVE
- AH = 11h
- DL = drive number (80h = first, 81h = second hard disk)
- Return: CF set on error
- CF clear if successful
- AH = status (see #0166 at AH=01h)
- Note: causes hard disk controller to seek the specified drive to cylinder 0
- SeeAlso: AH=00h,AH=0Ch,AH=10h,AH=19h"FIXED DISK",MEM 0040h:003Eh
- --------B-1312-------------------------------
- INT 13 - HARD DISK - CONTROLLER RAM DIAGNOSTIC (XT,PS)
- AH = 12h
- DL = drive number (80h = first, 81h = second hard disk)
- Return: CF set on error
- CF clear if successful
- AH = status code (see #0166 at AH=01h)
- AL = 00h
- SeeAlso: AH=13h,AH=14h
- --------d-1312-------------------------------
- INT 13 - Future Domain SCSI CONTROLLER - STOP SCSI DISK
- AH = 12h
- DL = hard drive ID
- Return: CF set on error
- CF clear if successful
- AH = status code (see #0166 at AH=01h)
- Notes: available at least on the TMC-870 8-bit SCSI controller BIOS v6.0A
- if the given drive is a SCSI device, the SCSI Stop Unit command is sent
- and either "Disk prepared for shipping" or "Disk Stop command failed"
- is displayed
- the TMC-950 does not support any Future Domain BIOS calls; instead,
- it provides a full CAM implementation (see INT 4F/AX=8100h)
- --------d-1312-------------------------------
- INT 13 - SyQuest - START/STOP SCSI DISK
- AH = 12h
- AL = subfunction
- 00h start disk
- 01h stop disk
- CX = wait flag
- 00h wait for ready
- 01h don't wait for ready
- DL = hard drive ID (bit 7 for hard disks must be set)
- Return: CF set on error
- CF clear if successful
- AH = status
- 00h successful
- 01h invalid function request
- 80h timeout
- SeeAlso: AH=12h"Future Domain",AH=13h"SyQuest"
- --------B-1313-------------------------------
- INT 13 - HARD DISK - DRIVE DIAGNOSTIC (XT,PS)
- AH = 13h
- DL = drive number (80h = first, 81h = second hard disk)
- Return: CF set on error
- CF clear if successful
- AH = status code (see #0166 at AH=01h)
- AL = 00h
- SeeAlso: AH=12h"HARD DISK",AH=14h"HARD DISK"
- --------d-1313-------------------------------
- INT 13 - SyQuest - READ DRIVE PARAMATERS (for DOS 5+)
- AH = 13h
- DL = drive ID (bit 7 set for hard disks)
- Return: CF set on error
- AH = status (07h) (see #0166 at AH=01h)
- CF clear if successful
- AH = 00h
- BL = drive type (AT/PS2 floppies only) (see #0174)
- CH = low eight bits of maximum cylinder number
- CL = maximum sector number (bits 5-0)
- high two bits of maximum cylinder number (bits 7-6)
- DH = maximum head number
- DL = number of drives
- ES:DI -> drive parameter table (floppies only)
- Notes: the return values are identical to the standard INT 13/AH=08h, but the
- number of drives is not limited to 2, so
- scanning all possible drive numbers with the Read DASD Type call
- (AH=15h) should generally be preferred to determine the number of
- drives attached to the system.
- SeeAlso: AH=08h"PC",AH=12h"SyQuest",AH=15h,AH=59h"SyQuest"
- --------B-1314-------------------------------
- INT 13 - HARD DISK - CONTROLLER INTERNAL DIAGNOSTIC
- AH = 14h
- Return: CF set on error
- CF clear if successful
- AH = status code (see #0166 at AH=01h)
- AL = 00h
- SeeAlso: AH=12h,AH=13h
- --------B-1315-------------------------------
- INT 13 - DISK - GET DISK TYPE (XT 1/10/86 or later,XT286,AT,PS)
- AH = 15h
- DL = drive number (bit 7 set for hard disk)
- Return: CF clear if successful
- AH = type code
- 00h no such drive
- 01h floppy without change-line support
- 02h floppy (or other removable drive) with change-line support
- 03h hard disk
- CX:DX = number of 512-byte sectors
- CF set on error
- AH = status (see #0166 at AH=01h)
- Note: SyQuest can report type 01h or 02h for 'hard disks', since its media
- is removable
- SeeAlso: AH=08h,AH=16h,AH=17h,AH=19h"SCSI"
- --------B-1316-------------------------------
- INT 13 - FLOPPY DISK - DETECT DISK CHANGE (XT 1/10/86 or later,XT286,AT,PS)
- AH = 16h
- DL = drive number (00h-7Fh)
- Return: CF clear if change line inactive
- AH = 00h (disk not changed)
- CF set if change line active
- AH = status
- 01h invalid command (SyQuest)
- 06h change line active or not supported
- 80h drive not ready or not present
- Notes: call AH=15h first to determine whether the drive supports a change
- line
- this call also clears the media-change status, so that a disk change
- is only reported once
- BUG: some versions of Award 386 Modular BIOS and AMI BIOS fail to clear
- the media-change status
- SeeAlso: AH=15h,AH=49h
- --------B-1317-------------------------------
- INT 13 - FLOPPY DISK - SET DISK TYPE FOR FORMAT (AT,PS)
- AH = 17h
- AL = format type
- 01h = 320/360K disk in 360K drive
- 02h = 320/360K disk in 1.2M drive
- 03h = 1.2M disk in 1.2M drive
- 04h = 720K disk in 720K or 1.44M drive
- DL = drive number
- Return: CF set on error
- CF clear if successful
- AH = status (see #0166 at AH=01h)
- Note: this function does not handle 1.44M drives; use AH=18h instead
- SeeAlso: AH=15h,AH=18h
- --------d-131700-----------------------------
- INT 13 - Future Domain SCSI CONTROLLER - GET INQUIRY INFO FROM SCSI DEVICE
- AX = 1700h
- CL = length of buffer
- DL = hard drive ID
- ES:BX -> buffer for info (see #0175)
- Return: CF clear if successful
- CH = number of bytes returned in buffer???
- CF set on error
- AH = status code (see #0166 at AH=01h)
- Notes: this function is not available with 8-bit controller ROM versions < 7.0
- information block bytes 5-n are vendor-specific in older SCSI devices
- the TMC-950 does not support any Future Domain BIOS calls; instead,
- it provides a full CAM implementation (see INT 4F/AX=8100h)
- SeeAlso: AH=18h"SCSI",AH=1Bh"SCSI"
-
- Format of Future Domain SCSI inquiry information block:
- Offset Size Description (Table 0175)
- 00h BYTE device type
- bits 0-4: peripheral device type (see #0176)
- bits 5-7: peripheral qualifier (see #0177)
- 01h BYTE device type modifier
- bits 0-6: device type modifier
- bit 7: removable medium
- 02h BYTE SCSI version (see #0178)
- 03h BYTE data format/capabilities (see #0179)
- 04h BYTE additional data length (total remaining bytes)
- 05h 2 BYTEs reserved
- 07h BYTE device capabilities (see #0180)
- 08h 8 BYTEs vendor identification (space-padded ASCII)
- 10h 8 BYTEs product identification (space-padded ASCII)
- 20h 4 BYTEs product revision level (space-padded ASCII)
- 24h 20 BYTEs vendor specific
- 38h 40 BYTEs reserved
- 60h var vendor specific parameters
-
- (Table 0176)
- Values for Future Domain SCSI peripheral device type:
- 00h direct-access device (e.g., magnetic disk)
- 01h sequential-access device (e.g., magnetic tape)
- 02h printer device
- 03h processor device
- 04h write-once device (e.g., some optical disks)
- 05h CD-ROM device
- 06h scanner device
- 07h optical memory device (e.g., some optical disks)
- 08h medium changer device (e.g., jukeboxes)
- 09h communications device
- 0Ah (defined by ASC IT8)
- 0Bh (defined by ASC IT8)
- 0Ch-1Eh reserved
- 1Fh unknown or no device type
-
- (Table 0177)
- Values for Future Domain SCSI peripheral qualifier:
- 000b device is currently connected to this logical unit and available
- 001b target is capable of supporting the specified peripheral, but the
- physical device is not currently connected to this logical unit
- 010b reserved
- 011b target can't support a physical device on this logical unit
- 1xxb vendor specific
-
- Bitfields for Future Domain SCSI version:
- Bit(s) Description (Table 0178)
- 0-2 ANSI-approved version
- 000 device might or might not comply to ANSI standard
- 001 device complies to ANSI SCSI-1
- 010 device complies to ANSI SCSI-2
- other reserved
- 3-5 ECMA version
- 6-7 ISO version
-
- Bitfields for Future Domain SCSI data format/capabilities:
- Bit(s) Description (Table 0179)
- 0-2 response data format
- 000 information block is as specified in SCSI-1
- 001 information block is as specified in CCS
- 010 information block is as specified in SCSI-2
- other reserved
- 4-5 reserved
- 6 terminate I/O process supported
- 7 asynchronous event notification supported
-
- Bitfields for Future Domain SCSI device capabilities:
- Bit(s) Description (Table 0180)
- 0 device responds to RESET with a hard RESET
- 1 tagged command queuing supported
- 2 reserved
- 3 linked commands supported
- 4 synchronous data transfer supported
- 5 16-transfers supported
- 6 32-transfers supported
- 7 relative addressing supported
- --------B-1318-------------------------------
- INT 13 - DISK - SET MEDIA TYPE FOR FORMAT (AT model 3x9,XT2,XT286,PS)
- AH = 18h
- DL = drive number
- CH = lower 8 bits of highest cylinder number (number of cylinders - 1)
- CL = sectors per track (bits 0-5)
- top 2 bits of highest cylinder number (bits 6,7)
- Return: AH = status
- 00h requested combination supported
- 01h function not available
- 0Ch not supported or drive type unknown
- 80h there is no disk in the drive
- ES:DI -> 11-byte parameter table (see #0960 at INT 1E)
- Note: this function does not set the INT 1E vector to point at the returned
- parameter table; it is the caller's responsibility to do so
- SeeAlso: AH=05h,AH=07h,AH=17h,INT 1E
- --------d-1318-------------------------------
- INT 13 - Future Domain SCSI BIOS - GET SCSI CONTROLLER INFORMATION
- AH = 18h
- DL = hard drive ID
- Return: CF set on error
- AH = status code (see #0166 at AH=01h)
- CF clear if successful
- AX = 4321h (magic number)
- CX = controller family code (see #0181)
- ---if family code=0200h
- DH = number of exclusively ROM-controlled SCSI devices
- DL = canonical SCSI device number for specified drive
- ---if family code <> 0200h
- BH = number of exclusively ROM-controlled SCSI devices
- BL = canonical SCSI device number for specified drive
- Notes: also sets an internal flag (non-resettable) which prevents some
- controller messages from being displayed, allows writes to
- removable devices (use caution!), and enables the INT 13 interface
- for more than one drive (i.e. DL >= 81h) in at least some ROM
- versions
- the TMC-950 does not support any Future Domain BIOS calls; instead,
- it provides a full CAM implementation (see INT 4F/AX=8100h)
- SeeAlso: AH=05h"SCSI",AX=1700h"SCSI",AH=1Bh"SCSI",INT 4F/AX=8100h
-
- (Table 0181)
- Values for Future Domain SCSI controller family code:
- 0200h TMC-1680/? (ROM 3.0)
- 0203h TMC-1650/1660/1670/1680 (ROM 2.0)
- 040Ah TMC-820/830/840/850/860/870/875/880/885 (ROM <= 6.0A)
- 050Dh TMC-840/841/880/881 (ROM 5.2D)
- 0700h TMC-830/850/860/875/885 (ROM 7.0)
- --------d-1318--CX5055-----------------------
- INT 13 - PU_1700.COM - INSTALLATION CHECK
- AH = 18h
- CX = 5055h ('PU')
- DL = 00h
- Return: AX = 7570h ('up') if PU_1700 is installed
- Program: PU_1700 is a BIOS enhancer from PU Service Systems which permits
- formatting diskettes at higher capacity (1.78M instead of 1.44M)
- SeeAlso: AX=057Fh/SI=324Dh"2M"
- --------d-1318--CXD2C9-----------------------
- INT 13 - XDF.COM - API
- AH = 18h
- CX = D2C9h ("R"+80h, "I"+80h = Roger Ivey)
- DX = 0000h
- BX = function
- 0000h installation check
- Return: AH = 0Ch
- CX = 7269h ("ri" = Roger Ivey)
- ES = segment of driver
- CF set
- 2F64h ("/d") disable the driver
- Return: AH = 0Ch
- ES:BX = pointer to activation flag (it is set to 0:
- set it to 1 to enable the driver again)
- CX = 7269h
- CF set
- 2F75h ("/u") unload the driver (restore interrupts & free memory)
- Return: AH = 0Ch
- DL = 55h ("U") if successful
- = 00h if fails
- CX = 7269h
- ES = segment of driver
- CF set
- AL, BX, DH, and DI destroyed
- Program: XDF is a TSR provided with PC-DOS 7.0 to support XDF 1.84M disks,
- developed by Roger D. Ivey
- Note: After disabling or enabling the driver, a disk change must be performed
- or simulated to reset the driver.
- --------B-1319-------------------------------
- INT 13 - FIXED DISK - PARK HEADS ON ESDI DRIVE (XT286,PS)
- AH = 19h
- DL = drive
- Return: CF set on error
- CF clear if successful
- AH = status (see #0166 at AH=01h)
- SeeAlso: AH=11h
- --------d-1319-------------------------------
- INT 13 - Future Domain SCSI CONTROLLER - REINITIALIZE DRIVE
- AH = 19h
- DL = hard drive ID
- Return: CF set on error
- AH = status code (see #0166 at AH=01h)
- CF clear if successful
- AH = disk type (03h = fixed disk)
- CX:DX = number of 512-byte sectors
- Notes: sends SCSI Read Capacity command to get number of logical blocks and
- adjusts the result for 512-byte sectors
- displays either "Error in Read Capacity Command" or "nnn Bytes per
- sector" (nnn=256 or 512, the only sizes supported in the translation
- code)
- should probably be called when a removable device has its media changed
- returns the same values as AH=15h
- the TMC-950 does not support any Future Domain BIOS calls; instead,
- it provides a full CAM implementation (see INT 4F/AX=8100h)
- SeeAlso: AH=15h,AH=1Ah,INT 4F/AX=8100h
- --------d-131A-------------------------------
- INT 13 - ESDI FIXED DISK - FORMAT UNIT (PS)
- AH = 1Ah
- AL = defect table entry count
- CL = format modifiers (see #0182)
- DL = drive (80h,81h)
- ES:BX -> defect table (see #0183), ignored if AL=00h
- Return: CF set on error
- CF clear if successful
- AH = status (see #0166 at AH=01h)
- Note: if periodic interrupt selected, INT 15/AH=0Fh is called after each
- cylinder is formatted
- SeeAlso: AH=07h,INT 15/AH=0Fh
-
- Bitfields for ESDI format modifiers:
- Bit(s) Description (Table 0182)
- 4 generate periodic interrupt
- 3 perform surface analysis
- 2 update secondary defect map
- 1 ignore secondary defect map
- 0 ignore primary defect map
-
- Format of defect table entry [array]:
- Offset Size Description (Table 0183)
- 00h 3 BYTEs relative sector address (little-endian)
- 03h BYTE flags and defect count
- bit 7: last logical sector on track
- bit 6: first logical sector on track
- bit 5: last logical sector on cylinder
- bit 4: logical sectors are pushed onto next track
- bits 3-0: number of defects pushed from previous cylinder
- --------d-131A-------------------------------
- INT 13 - Future Domain SCSI CONTROLLER - GET SCSI PARTIAL MEDIUM CAPACITY
- AH = 1Ah
- CH = track (bits 8,9 in high bits of CL)
- CL = sector (01h to number of sectors/track for drive)
- DH = head
- DL = hard drive ID
- Return: CF set on error
- AH = status code (see #0166 at AH=01h)
- CX:DX = logical block number of last quickly-accessible block after
- given block
- Notes: sends SCSI Read Capacity command with the PMI bit set to obtain the
- logical block address of the last block after which a substantial
- delay in data transfer will be encountered (usually the last block
- on the current cylinder). No translation to 512 byte sectors is
- performed on the result if data is stored on the disk in other than
- 512 byte sectors.
- the TMC-950 does not support any Future Domain BIOS calls; instead,
- it provides a full CAM implementation (see INT 4F/AX=8100h)
- SeeAlso: AH=15h,AH=19h"SCSI"
- --------d-131B-------------------------------
- INT 13 - ESDI FIXED DISK - GET MANUFACTURING HEADER
- AH = 1Bh
- AL = number of sectors to read
- DL = drive
- ES:BX -> buffer for manufacturing header (defect list)
- Return: CF set on error
- CF clear if successful
- AH = status
- Note: manufacturing header format (Defect Map Record format) can be found
- in IBM 70MB, 115MB Fixed Disk Drives Technical Reference
- the first sector read contains the manufacturing header with the number
- of defect entries and the beginning of the defect map; the remaining
- sectors contain the remainder of the defect map
- --------d-131B-------------------------------
- INT 13 - Future Domain SCSI CONTROLLER - GET POINTER TO SCSI DISK INFO BLOCK
- AH = 1Bh
- DL = hard drive ID
- Return: CF set on error
- AH = status code (see #0166 at AH=01h)
- CF clear if successful
- ES:BX -> SCSI disk information block (see #0184)
- Notes: also sets a non-resettable flag which prevents some controller messages
- from being displayed
- the TMC-950 does not support any Future Domain BIOS calls; instead,
- it provides a full CAM implementation (see INT 4F/AX=8100h)
- SeeAlso: AH=18h"SCSI",AH=1Ch"SCSI"
-
- Format of Future Domain SCSI disk information block:
- Offset Size Description (Table 0184)
- 00h BYTE drive physical information (see #0185)
- 01h WORD translated number of cylinders
- 03h BYTE translated number of heads
- 04h BYTE translated number of sectors per track (17, 34, or 63)
- 05h BYTE drive address
- bits 0-2: logical unit number
- bits 3-5: device number
- 06h BYTE 01h at initialization
- 07h BYTE sense code byte 00h, or extended sense code byte 0Ch
- 08h BYTE 00h
- 09h BYTE 00h or extended sense code byte 02h (sense key)
- 0Ah BYTE 00h
- 0Bh 10 BYTEs copy of Command Descriptor Block (CDB) (see #2907,#2908)
- 15h DWORD translated number of sectors on device
-
- Bitfields for Future Domain SCSI device physical information:
- Bit(s) Description (Table 0185)
- 0 ???
- 1 device uses parity
- 2 256 bytes per sector instead of 512
- 3 don't have capacity yet???
- 4 disk is removable
- 5 logical unit number is not present
- --------d-131C-------------------------------
- INT 13 - Future Domain SCSI CONTROLLER - GET POINTER TO FREE CONTROLLER RAM
- AH = 1Ch
- DL = hard drive ID (any valid SCSI hard disk)
- Return: CF set on error
- AH = status code (see #0166 at AH=01h)
- CF clear if successful
- ES:BX -> first byte of free RAM on controller
- Notes: the Future Domain TMC-870 contains 1024 bytes of RAM at offsets 1800h
- to 1BFFh on-board the controller for storing drive information and
- controller status; ES:BX points to the first byte available for other
- uses
- ES contains the segment at which the controller resides; the
- controller's two memory-mapped I/O ports are at offsets 1C00h, 1E00h
- SeeAlso: AH=1Bh"SCSI"
- --------d-131C-------------------------------
- INT 13 U - ESDI FIXED DISK - ???
- AH = 1Ch
- AL = subfunction (01h-06h)
- DL = drive (80h,81h)
- ???
- Return: ???
- Note: these functions perform a controller command 0612h without DMA
- SeeAlso: AX=1C08h,PORT 3510h"ESDI"
- --------d-131C08-----------------------------
- INT 13 U - ESDI FIXED DISK - GET COMMAND COMPLETION STATUS
- AX = 1C08h
- DL = drive (80h,81h)
- ES:BX -> buffer for Command Complete Status Block (see #0186)
- Return: CF set on error
- CF clear if successful
- AH = status (see #0166 at AH=01h)
- SeeAlso: AX=1C09h,AX=1C0Ah,PORT 3510h"ESDI"
-
- Format of ESDI Command Complete Status Block:
- Offset Size Description (Table 0186)
- 00h BYTE 07h
- 01h BYTE size of block in words (07h)
- 02h BYTE command error code (see #0187)
- 03h BYTE command status code (see #0188)
- 04h BYTE device error code, group 1 (see #0189)
- 05h BYTE device error flags, group 2 (see #0190)
- 06h WORD number of unprocessed sectors due to abnormal termination
- 08h DWORD last Relative Sector Address processed by command
- 0Ch WORD number of sectors corrected by ECC codes
-
- (Table 0187)
- Values for ESDI command error code:
- 00h successful
- 01h parameter invalid
- 02h unknown function
- 03h unsupported command
- 04h command cancelled
- 05h unknown function
- 06h controller diagnostics failed
- 07h formatting failed
- 08h format error in primary map
- 09h format error in secondary map
- 0Ah diagnostic failure during formatting
- 0Bh warning: secondary map too large during formatting
- 0Ch warning: non-zero defect
- 0Dh system checksum error during formatting
- 0Eh warning: incompatible device
- 0Fh warning: push table overflowed
- 10h warning: more than 15 sectors pushed to next cylinder
- 11h internal hardware error
- 12h warning: errors found while verifying sectors
- 13h invalid device
- FFh device error
-
- (Table 0188)
- Values for ESDI command status code:
- 01h successful
- 03h successful after ECC
- 05h successful after retries
- 06h format partially completed
- 07h successful after ECC and retries
- 08h command completed with warning (see #0187)
- 09h abort complete
- 0Ah reset complete
- 0Bh data transfer ready (no status block)
- 0Ch command completed with failure (see #0189,#0190)
- 0Dh DMA error
- 0Eh command block error (see #0187)
- 0Fh bad attention code
- SeeAlso: #0189
-
- (Table 0189)
- Values for ESDI device error code, group 1:
- 00h successful
- 01h seek fault detected by device
- 02h interface fault
- 03h sector ID not found
- 04h disk not formatted
- 05h unrecoverable ECC error
- 06h ECC error in sector ID
- 07h invalid relative sector address
- 08h timeout
- 09h sector defective
- 0Ah disk changed (removable media)
- 0Bh selection error
- 0Ch write protected (removable media)
- 0Dh write fault
- 0Eh read fault
- 0Fh no index or sector pulse
- 10h device not ready
- 11h seek error detected by adapter
- 12h bad format
- 13h volume overflow
- 14h data address mark not found
- 15h sector ID not found
- 16h missing device configuration data
- 17h first/last relative sector flags missing
- 18h track empty
- 81h timeout while waiting for stop
- 82h timeout while waiting for end of data transfer
- 84h stopped awaiting data transfer during formatting
- 85h timeout while waiting for head switch
- 86h timeout while awaiting DMA completion
- SeeAlso: #0188,#0190
-
- Bitfields for ESDI device error flags, group 2:
- Bit(s) Description (Table 0190)
- 7-5 unused
- 4 ready
- 3 selected
- 2 write fault
- 1 on track 0
- 0 seek/command complete
- SeeAlso: #0189
- --------d-131C09-----------------------------
- INT 13 U - ESDI FIXED DISK - GET DEVICE STATUS
- AX = 1C09h
- DL = drive (80h,81h)
- ES:BX -> buffer for Device Status Block (see #0191)
- Return: CF set on error
- CF clear if successful
- AH = status (see #0166 at AH=01h)
- SeeAlso: AX=1C08h,AX=1C0Ah,PORT 3510h"ESDI"
-
- Format of ESDI Device Status Block:
- Offset Size Description (Table 0191)
- 00h BYTE 08h
- 01h BYTE number of words in block (09h)
- 02h BYTE error flags
- 03h BYTE unused
- 04h BYTE command error code (see #0187)
- 05h BYTE command status code (see #0188)
- 06h WORD ESDI standard status
- 08h 5 WORDs ESDI vendor-specific status codes
- --------d-131C0A-----------------------------
- INT 13 U - ESDI FIXED DISK - GET DEVICE CONFIGURATION
- AX = 1C0Ah
- DL = drive (80h,81h)
- ES:BX -> buffer for Drive Configuration Status Block (see #0192)
- Return: CF set on error
- CF clear if successful
- AH = status (see #0166 at AH=01h)
- Note: device configuration format can be found in IBM ESDI Fixed Disk Drive
- Adapter/A Technical Reference
- SeeAlso: AX=1C08h,AX=1C0Bh,AX=1C0Ch
-
- Format of ESDI Drive Configuration Status Block:
- Offset Size Description (Table 0192)
- 00h BYTE 09h
- 01h BYTE number of words in block (06h)
- 02h BYTE flags
- 03h BYTE number of spare sectors per cylinder
- 04h DWORD total number of usable sectors
- 08h WORD total number of cylinders
- 0Ah BYTE tracks per cylinder
- 0Bh BYTE sectors per track
- --------d-131C0B-----------------------------
- INT 13 U - ESDI FIXED DISK - GET ADAPTER CONFIGURATION
- AX = 1C0Bh
- ES:BX -> buffer for Controller Configuration Status Block (see #0193)
- Return: CF set on error
- CF clear if successful
- AH = status (see #0166 at AH=01h)
- SeeAlso: AX=1C0Ch
-
- Format of ESDI Controller Configuration Status Block:
- Offset Size Description (Table 0193)
- 00h BYTE E9h
- 01h BYTE number of words in block (06h)
- 02h WORD unused (0000h)
- 04h DWORD controller microcode revision level
- 08h 2 WORDs unused (0000h)
- --------d-131C0C-----------------------------
- INT 13 U - ESDI FIXED DISK - GET POS INFORMATION
- AX = 1C0Ch
- ES:BX -> buffer for POS Information Status Block (see #0194)
- Return: CF set on error
- CF clear if successful
- AH = status (see #0166 at AH=01h)
- SeeAlso: AX=1C0Bh
-
- Format of ESDI POS Information Status Block:
- Offset Size Description (Table 0194)
- 00h BYTE EAh
- 01h BYTE number of words in block (05h)
- 02h WORD magic value FFDDh
- 04h BYTE POS register 3
- 05h BYTE POS register 2
- 06h BYTE POS register 5 (unused, FFh)
- 07h BYTE POS register 4 (unused, FFh)
- 08h BYTE POS register 7 (unused, FFh)
- 09h BYTE POS register 6 (unused, FFh)
- --------d-131C0D-----------------------------
- INT 13 U - ESDI FIXED DISK - ???
- AX = 1C0Dh
- DL = drive (80h,81h)
- ???
- Return: ???
- Note: invokes controller command 0614h without DMA
- SeeAlso: AH=1Ch"ESDI",AX=1C0Fh,PORT 3510h"ESDI"
- --------d-131C0E-----------------------------
- INT 13 U - ESDI FIXED DISK - TRANSLATE RBA TO ABA
- AX = 1C0Eh
- CH = low 8 bits of cylinder number
- CL = sector number, high two bits of cylinder number in bits 6 and 7
- DH = head number
- DL = drive number (80h,81h)
- ES:BX -> ABA number
- Return: CF set on error
- CF clear if successful
- AH = status (see #0166 at AH=01h)
- Note: ABA (absolute block address) format can be found in IBM ESDI Adapter
- Technical Reference by using its Device Configuration Status Block
- SeeAlso: AX=1C08h,AX=1C0Fh,PORT 3510h"ESDI"
- --------d-131C0F-----------------------------
- INT 13 U - ESDI FIXED DISK - ???
- AX = 1C0Fh
- DL = drive (80h,81h)
- ???
- Return: ???
- Note: invokes controller command 0614h without DMA
- SeeAlso: AH=1Ch"ESDI",AX=1C0Dh,AX=1C12h,PORT 3510h"ESDI"
- --------d-131C12-----------------------------
- INT 13 U - ESDI FIXED DISK - ???
- AX = 1C12h
- DL = drive (80h,81h)
- ???
- Return: ???
- Note: invokes controller command 0612h without DMA
- SeeAlso: AH=1Ch"ESDI",AX=1C0Fh,PORT 3510h"ESDI"
- --------c-131D-------------------------------
- INT 13 - IBMCACHE.SYS - CACHE STATUS
- AH = 1Dh
- AL = subfunction
- 01h get status record
- DL = drive???
- Return: ES:BX -> status record (see #0195)
- CF set on error
- AH = error code
- 02h set cache status
- ES:BX -> status record (see #0195)
- DL = drive???
- Return: CF set on error
-
- Format of IBMCACHE.SYS status record:
- Offset Size Description (Table 0195)
- 00h DWORD total number of read requests
- 04h DWORD total number of hits
- 08h DWORD number of physical disk reads
- 0Ch DWORD total number of sectors requested by physical disk reads
- 10h 6 BYTEs ???
- 16h DWORD pointer to start of error list (see #0196)
- 1Ah DWORD pointer to end of error list
- 1Eh WORD ???
- 20h BYTE using extended memory if nonzero
- 21h BYTE ???
- 22h 4 BYTEs ASCII version number
- 26h WORD cache size in KB
- 28h WORD sectors per page
-
- Format of IBMCACHE.SYS error list:
- Offset Size Description (Table 0196)
- 00h DWORD relative block address of bad page
- 04h BYTE drive
- 05h BYTE sector bit-map
- 06h WORD next error
- --------d-131F-------------------------------
- INT 13 - SyQuest - DOOR LATCH/DOOR BUTTON DETECT
- AH = 1Fh
- AL = subfunction
- 00h allow media removal
- 01h prevent media removal (lock door)
- DL = drive ID (bit 7 set for hard disks)
- Return: CF clear if successful
- AH = 00h
- CF set on error
- AH = error code
- 00h successful
- 01h invalid function request
- 80h timeout
- DDh media change requested
- SeeAlso: AH=12h"SyQuest",AH=13h"SyQuest",AH=59h"SyQuest"
- --------d-1320-------------------------------
- INT 13 - DISK - ??? (Western Digital "Super BIOS")
- AH = 20h
- ???
- Return: ???
- Notes: returns some kind of status related to whether the drive contains its
- default media type
- QEMM v6.00 calls INT 13/AX=2000h/DL=81h in some cases
- --------b-1320-------------------------------
- INT 13 U - Compaq, ATAPI Removable Media Device - GET CURRENT MEDIA FORMAT
- AH = 20h
- DL = drive number (00h,01h)
- Return: CF clear if successful
- AL = media type (see #0197)
- AH = 00h
- CF set on error
- AH = error code
- 01h invalid request
- 30h drive does not support media sense
- 31h no such drive / media not present
- 32h non-default media / drive does not supporte media type
- Notes: this function is supported by the 3/8/93 ROM BIOS, but only partially
- (AL is always 00h when successful) by the 8/3/93 version
- this function is also supported by some recent versions of the Phoenix
- 486 BIOS
-
- (Table 0197)
- Values for Compaq/ATAPI diskette media type:
- 03h 720K (1M unformatted)
- 04h 1.44M (2M unformatted)
- 06h 2.88M (4M unformatted)
- 0Ch 360K
- 0Dh 1.2M
- 0Eh Toshiba 3mode
- 0Fh NEC 3mode (1024-byte sectors)
- 10h ATAPI Removable Media Device
- --------c-1320-------------------------------
- INT 13 u - QUICKCACHE II v4.20 - DISMOUNT
- AH = 20h
- AL = drive (00h = A:, etc. or 7Fh for all removable drives???
- or FFh for all drives)
- Return: AX = status (0000h successful)
- Program: QUICKCACHE II is a shareware disk cache by P.R. Glassel and
- Associates, Inc.
- Desc: flush any dirty buffers for the specified drive(s) and then discard
- those sector buffers
- SeeAlso: AH=21h"QUICKCACHE",AH=22h"QUICKCACHE",AH=28h
- --------d-1321-------------------------------
- INT 13 - HARD DISK - PS/1 and newer PS/2 - READ MULTIPLE DISK SECTORS
- AH = 21h
- AL = number of sectors to write
- CH = low byte of 12-bit cylinder number
- CL = starting sector (bits 0-5) and bits 8-9 of cylinder (bits 6-7)
- DH = head number (bits 0-5) and bits 10-11 of cylinder (bits 6-7)
- DL = drive number (80h,81h)
- ES:BX -> buffer for data to be read
- Return: CF clear if successful
- ES:BX buffer filled
- CF set on error
- AH = status (see #0166 at AH=01h)
- Desc: read from the disk using the Multiple Block mode available on newer
- IDE drives and some hard disk controllers, which generates an
- interrupt only after the end of transferring a group of sectors
- rather than after each sector
- Notes: must call AH=24h"PS/1" before using this function
- input values in CL and DH are not range-checked
- the byte at address 0040h:0074h is set to the status of the operation
- SeeAlso: AH=02h,AH=22h"PS/1",AH=23h"PS/1",AH=24h"PS/1"
- --------c-1321-------------------------------
- INT 13 u - QUICKCACHE II v4.20 - FLUSH CACHE
- AH = 21h
- Return: AX = status (0000h successful)
- Desc: immediately write all dirty sectors back to disk
- SeeAlso: AH=25h"QUICKCACHE",AH=2Eh,AH=2Fh
- --------d-1322-------------------------------
- INT 13 - HARD DISK - PS/1 and newer PS/2 - WRITE MULTIPLE DISK SECTORS
- AH = 22h
- AL = number of sectors to write
- CH = low byte of 12-bit cylinder number
- CL = starting sector (bits 0-5) and bits 8-9 of cylinder (bits 6-7)
- DH = head number (bits 0-5) and bits 10-11 of cylinder (bits 6-7)
- DL = drive number (80h,81h)
- ES:BX -> buffer containing data to be written
- Return: CF clear if successful
- CF set on error
- AH = status (see #0166 at AH=01h)
- Desc: write to the disk using the Multiple Block mode available on newer
- IDE drives and some hard disk controllers, which generates an
- interrupt only after the end of transferring a group of sectors
- rather than after each sector
- Notes: must call AH=24h"PS/1" before using this function
- input values in CL and DH are not range-checked
- the byte at address 0040h:0074h is set to the status of the operation
- SeeAlso: AH=03h,AH=21h"PS/1",AH=23h"PS/1",AH=24h"PS/1"
- --------c-1322-------------------------------
- INT 13 u - QUICKCACHE II v4.20 - ENABLE/DISABLE CACHE
- AH = 22h
- AL = new state (00h disabled, 01h enabled)
- Return: AX = status (0000h successful)
- Note: enables/disables caching of all drives
- SeeAlso: AH=2Ch,AH=2Dh,AH=32h,AH=33h,AH=A3h,AH=A4h
- --------d-1323-------------------------------
- INT 13 U - HARD DISK - PS/1 and newer PS/2 - SET CONTROLLER FEATURES REGISTER
- AH = 23h
- AL = feature number (see #0198)
- DL = drive number (80h,81h)
- ???
- Return: CF clear if successful
- CF set on error
- AH = status (see #0166 at AH=01h)
- SeeAlso: AH=21h"PS/1",AH=22h"PS/1",AH=24h"PS/1",AH=25h"PS/1"
-
- (Table 0198)
- Values for PS/1 hard disk feature number:
- 01h select 8-bit data transfers instead of 16-bit
- 02h enable write cache
- 22h Write Same, user-specified area
- 33h disable retries
- 44h set number of ECC bytes for read long/write long (see AH=0Ah,AH=0Bh)
- 54h set cache segments
- 55h disable lookahead
- 66h disable reverting to power-on defaults
- 77h disable error correctioni
- 81h select 16-bit data transfers (default)
- 82h disable write cache
- 88h enable error correction (default)
- 99h enable retries (default)
- AAh enable lookahead
- BBh set ECC length for read long/write long to four bytes
- CCh enable reverting to power-on defaults
- DDh Write Same, entire disk
- SeeAlso: #P175
- --------c-1323-------------------------------
- INT 13 U - QUICKCACHE II v4.20 - GET ??? ADDRESS
- AH = 23h
- Return: AX = status (0000h successful)
- ES = segment of ??? data
- --------d-1324-------------------------------
- INT 13 - HARD DISK - PS/1 and newer PS/2 - SET MULTIPLE MODE
- AH = 24h
- AL = number of sectors per block (2,4,8,16)
- DL = drive number (80h,81h)
- Return: CF clear if successful
- CF set onerror
- AH = status (see #0166 at AH=01h)
- Desc: specify how many sectors the controller should transfer as a group
- between operation-complete interrupts when using the Read Multiple
- and Write Multiple functions (AH=21h,AH=22h)
- Notes: set the number of sectors to 0 to disable multiple-transfer mode
- the maximum value for the block size depends on the fixed disk
- drive type. The value is stored in byte 15h of the fixed disk
- drive parameter table that is created by POST.
- the byte at address 0040h:0074h is set to status of operation.
- SeeAlso: AH=21h"PS/1",AH=22h"PS/1",AH=23h"PS/1",AH=25h"PS/1"
- --------c-1324-------------------------------
- INT 13 u - QUICKCACHE II v4.20 - SET SECTORS
- AH = 24h
- BX = new number of sector buffers in cache
- Return: AX = status
- 0000h successful
- 0001h failed--size adjusted
- 8000h cache cannot be resized while enabled
- SeeAlso: AH=36h
- --------d-1325-------------------------------
- INT 13 - HARD DISK - PS/1 and newer PS/2 - IDENTIFY DRIVE
- AH = 25h
- DL = drive number (80h,81h)
- ES:BX-> 512 byte buffer for reply packet
- Return: CF clear if successful
- CF set on error
- AH = status (see #0166 at AH=01h)
- buffer filled with ATA/IDE-style drive information block (see #0199)
- Desc: retrieves the 256 words of drive data stored on an IDE hard disk
- Notes: the byte at address 0040h:0074h is set to the status of the operation
- IBM officially classifies this function as optional
- SeeAlso: AH=23h"PS/1"
-
- Format of drive information block:
- Offset Size Description (Table 0199)
- 00h WORD general drive configuration (see #0200)
- 02h WORD number of cylinders
- 04h WORD reserved
- 06h WORD number of heads
- 08h WORD number of unformatted bytes per track
- 0Ah WORD number of unformatted bytes per sector
- 0Ch WORD number of sectors per track
- 0Eh 6 BYTEs vendor unique
- 14h 20 BYTEs serial number in ASCII, 0000h=not specified)
- 28h WORD buffer type
- 2Ah WORD buffer size in 512 byte increments (0000h=not specified)
- 2Ch WORD number of ECC bytes passed on Read/Write Long cmds
- 0000h = not specified
- 2Eh 8 BYTEs firmware revision in ASCII, 0000h=not specified
- 36h 40 BYTEs model number in ASCII, 0000h=not specified
- 5Eh WORD bits 15-8 Vendor Unique
- bits 7-0 00h = Read/Write Multiple commands not implemented
- xxh = Maximum number of sectors that can be
- transferred per interrupt on Read and Write
- Multiple commands
- 60h WORD 0000h = cannot perform doubleword I/O
- 0001h = can perform doubleword I/O
- 62h WORD capabilities
- bit 15-9 0=reserved
- bit 8 1=DMA Supported
- bit 7-0 Vendor Unique
- 64h WORD reserved
- 66h WORD bits 15-8 PIO data transfer cycle timing mode
- bits 7-0 Vendor Unique
- 68h WORD bits 15-8 DMA data transfer cycle timing mode
- bits 7-0 Vendor Unique
- 6Ah WORD bits 15-1 reserved
- bit 0 1=the fields reported in tranlation mode are valid
- 0=the fields reported in translation mode may be valid
- 6Ch WORD number of current cylinders
- 6Eh WORD number of current heads
- 70h WORD number of current sectors per track
- 72h DWORD current capacity in sectors
- 76h WORD reserved
- 78h 136 BYTEs not defined by ATA spec 2.6
- 100h 64 BYTEs vendor unique
- 140h 96 BYTEs reserved
- Note: the above description is as in the ATA (AT Attachment) Specification.
- SeeAlso: #P157
-
- Bitfields for general drive configuration:
- Bit(s) Description (Table 0200)
- 15 0 reserved for non-magnetic drives
- 14 format speed tolerance gap required
- 13 track offset option available
- 12 data strobe offset option available
- 11 rotational speed tolerance is > 0.5%
- 10 disk transfer rate > 10 Mbs
- 9 disk transfer rate > 5Mbs but <= 10Mbs
- 8 disk transfer rate <= 5Mbs
- 7 removable cartridge drive
- 6 fixed drive
- 5 spindle motor control option implemented
- 4 head switch time > 15 usec
- 3 not MFM encoded
- 2 soft sectored
- 1 hard sectored
- 0 reserved (0)
- --------c-1325-------------------------------
- INT 13 u - QUICKCACHE II v4.20 - SET FLUSH INTERVAL
- AH = 25h
- BX = interval
- Return: AX = status (0000h successful)
- Desc: specify how often the cache should write dirty buffers to disk when
- buffered writes are enabled
- SeeAlso: AH=21h"QUICKCACHE",AH=2Ch,AH=2Eh
- --------c-1326-------------------------------
- INT 13 U - QUICKCACHE II v4.20 - UNINSTALL
- AH = 26h
- Return: AX = status
- 0000h successful
- 0001h-00FFh interrupt vector which was hooked by another TSR
- SeeAlso: AH=27h
- --------c-1327--BX0000-----------------------
- INT 13 u - QUICKCACHE II v4.20 - INSTALLATION CHECK
- AH = 27h
- BX = 0000h
- Return: AX = 0000h if installed
- BX nonzero if installed
- BH = major version
- BL = binary minor version
- Program: QUICKCACHE II is a shareware disk cache by P.R. Glassel and
- Associates, Inc.
- SeeAlso: AH=26h,AH=A0h,INT 16/AX=FFA5h/CX=1111h
- --------c-1328-------------------------------
- INT 13 U - QUICKCACHE II v4.20 - SET AUTOMATIC DISMOUNT
- AH = 28h
- AL = new state (00h disabled, 01h enabled)
- Return: AX = status (0000h successful)
- SeeAlso: AH=20h"QUICKCACHE"
- --------c-1329-------------------------------
- INT 13 U - QUICKCACHE II v4.20 - NOP
- AH = 29h
- Return: AX = 0000h
- --------c-132A-------------------------------
- INT 13 u - QUICKCACHE II v4.20 - SET BUFFER SIZE
- AH = 2Ah
- AL = buffer size (1-30)
- Return: AX = status (0000h successful)
- Desc: specify the number of cache sector buffers to dedicate to buffered read
- and write operations
- SeeAlso: AH=2Ch,AH=2Dh,AH=39h,AH=3Ah
- --------c-132B-------------------------------
- INT 13 U - QUICKCACHE II v4.20 - DRIVE ACCESS SOUNDS
- AH = 2Bh
- AL = new state (00h disabled, 01h enabled)
- Return: AX = status (0000h successful)
- --------c-132C-------------------------------
- INT 13 u - QUICKCACHE II v4.20 - SET BUFFERED WRITES
- AH = 2Ch
- AL = new state (00h disabled, 01h enabled)
- Return: AX = status (0000h successful)
- Desc: specify whether the cache should delay disk writes
- Note: this function enables or disables delayed writes for all drives; use
- AH=38h to change a single drive
- SeeAlso: AH=25h"QUICKCACHE",AH=2Dh,AH=2Eh,AH=38h
- --------c-132D-------------------------------
- INT 13 u - QUICKCACHE II v4.20 - SET BUFFERED READ
- AH = 2Dh
- AL = new state (00h disabled, 01h enabled)
- Return: AX = status (0000h successful)
- Desc: specify whether the cache should attempt to read ahead of actual
- requests
- Note: this function enables or disables read-ahead for all drives; use AH=37h
- to change a single drive
- SeeAlso: AH=2Ch,AH=37h
- --------c-132E-------------------------------
- INT 13 u - QUICKCACHE II v4.20 - SET FLUSH COUNT
- AH = 2Eh
- BX = flush count
- Return: AX = status (0000h successful)
- Desc: specify how many dirty sectors the cache should write after each flush
- interval (see AH=25h"QUICKCACHE") when buffered writes are enabled
- SeeAlso: AH=21h"QUICKCACHE",AH=25h"QUICKCACHE",AH=2Ch
- --------c-132F-------------------------------
- INT 13 - QUICKCACHE II v4.20 - FORCE IMMEDIATE INCREMENTAL FLUSH
- AH = 2Fh
- Return: AX = status (0000h successful)
- Desc: immediately flush up to "flushcount" dirty sectors to disk as if the
- flush interval had expired
- SeeAlso: AH=21h"QUICKCACHE"
- --------c-1330-------------------------------
- INT 13 u - QUICKCACHE II v4.20 - GET INFO
- AH = 30h
- AL = what to get
- 00h system info (see #0201)
- 01h drive info (see #0202)
- 02h access frequency (array of 30 words)
- 03h drive index
- (array of 32 bytes indicating BIOS drive for DOS drive)
- DS:DX -> buffer for info
- Return: AX = status (0000h successful, 8000h invalid info specifier)
- Program: QUICKCACHE II is a shareware disk cache by P.R. Glassel and
- Associates, Inc.
-
- Format of QUICKCACHE II system info:
- Offset Size Description (Table 0201)
- 00h BYTE flag: cache enabled
- 01h BYTE flag: buffered writes enabled
- 02h BYTE flag: buffered reads enabled
- 03h BYTE flag: sounds enabled
- 04h BYTE flag: autodismount enabled
- 05h BYTE ???
- 06h BYTE flag: ???
- 07h BYTE flag: ???
- 08h BYTE flag: "em_assigned"
- 09h BYTE flag: emulated EMS
- 0Ah BYTE single sector bonus
- 0Bh BYTE "sticky_max"
- 0Ch BYTE write sector bonus
- 0Dh BYTE bonus threshold
- 0Eh WORD flush interval
- 10h WORD flush count
- 12h WORD reserve pool size
- 14h WORD remaining space in reserve pool
- 16h WORD required free memory
- 18h WORD total cache sectors
- 1Ah WORD dirty cache sectors
- 1Ch BYTE trace buffer size
- 1Dh BYTE reserved (padding)
- SeeAlso: #0202
-
- Format of QUICKCACHE II drive info [16-element array, one element]:
- Offset Size Description (Table 0202)
- 00h BYTE DOS drive number
- 01h BYTE BIOS drive number
- 02h BYTE maximum sector number
- 03h BYTE maximum head number
- 04h BYTE read buffer size
- 05h BYTE write buffer size
- 06h BYTE last status
- 07h BYTE flag: enabled
- 08h BYTE flag: buffered write enabled
- 09h BYTE flag: buffered read enabled
- 0Ah BYTE flag: in use (drive info is valid)
- 0Bh BYTE flag: cylinder flush
- 0Ch BYTE reserved (padding)
- 0Dh BYTE sectors per track
- 0Eh WORD sector size
- 10h WORD sectors assigned
- 12h WORD dirty sectors
- 14h WORD reserved sectors
- 16h WORD number of read errors
- 18h WORD number of write errors
- 1Ah DWORD "rio_count"
- 1Eh DWORD number of cache misses
- 22h DWORD "wio_count"
- 26h DWORD "dio_count"
- SeeAlso: #0201
- --------c-1331-------------------------------
- INT 13 U - QUICKCACHE II v4.20 - RESERVE MEMORY
- AH = 31h
- BX = number of paragraphs of conventional memory to reserve for apps
- Return: AX = status (0000h successful)
- --------c-1332-------------------------------
- INT 13 U - QUICKCACHE II v4.20 - ENABLE CACHING FOR SPECIFIC DRIVE
- AH = 32h
- AL = drive number (00h=A:)
- Return: AX = status (0000h successful)
- SeeAlso: AH=22h"QUICKCACHE",AH=33h
- --------c-1333-------------------------------
- INT 13 U - QUICKCACHE II v4.20 - DISABLE CACHING FOR SPECIFIC DRIVE
- AH = 33h
- AL = drive number (00h=A:)
- Return: AX = status (0000h successful)
- SeeAlso: AH=22h"QUICKCACHE",AH=32h
- --------c-1334-------------------------------
- INT 13 U - QUICKCACHE II v4.20 - SECTOR LOCKING
- AH = 34h
- AL = function
- 00h end sector locking/unlocking
- 01h lock all accessed sectors into cache
- 02h unlock all accessed sectors and discard from cache
- Return: AX = status (0000h successful)
- SeeAlso: AH=20h"QUICKCACHE",AH=35h
- --------c-1335-------------------------------
- INT 13 U - QUICKCACHE II v4.20 - SET LOCK POOL SIZE
- AH = 35h
- BX = number of sectors in lock pool
- Return: AX = status (0000h successful)
- Desc: specify the number of cache sector buffers which may be dedicated to
- data locked into the cache
- SeeAlso: AH=34h
- --------c-1336-------------------------------
- INT 13 U - QUICKCACHE II v4.20 - SET TRACE BUFFER SIZE
- AH = 36h
- AL = new size of trace buffer
- Return: AX = status (0000h successful)
- Note: called with AL=05h during an INT 13/AH=24h"QUICKCACHE" call
- SeeAlso: AH=24h"QUICKCACHE"
- --------c-1337-------------------------------
- INT 13 U - QUICKCACHE II v4.20 - SET BUFFERED READS FOR SPECIFIC DRIVE
- AH = 37h
- AL = new state (00h disabled, else enabled)
- DL = drive number (00h = A:)
- Return: AX = status (0000h successful)
- SeeAlso: AH=2Dh,AH=38h
- --------c-1338-------------------------------
- INT 13 U - QUICKCACHE II v4.20 - SET BUFFERED WRITES FOR SPECIFIC DRIVE
- AH = 38h
- AL = new state (00h disabled, else enabled)
- DL = drive number (00h = A:)
- Return: AX = status (0000h successful)
- SeeAlso: AH=2Ch,AH=37h
- --------c-1339-------------------------------
- INT 13 U - QUICKCACHE II v4.20 - SET READ BUFFER SIZE FOR SPECIFIC DRIVE
- AH = 39h
- AL = new size of read buffer
- DL = drive number (00h = A:)
- Return: AX = status (0000h successful)
- Program: QUICKCACHE II is a shareware disk cache by P.R. Glassel and
- Associates, Inc.
- SeeAlso: AH=2Ah,AH=3Ah
- --------c-133A-------------------------------
- INT 13 U - QUICKCACHE II v4.20 - SET WRITE BUFFER SIZE FOR SPECIFIC DRIVE
- AH = 3Ah
- AL = new size of write buffer
- DL = drive number (00h = A:)
- Return: AX = status (0000h successful)
- SeeAlso: AH=2Ah,AH=39h
- --------c-133B-------------------------------
- INT 13 U - QUICKCACHE II v4.20 - ENABLE/DISABLE ???
- AH = 3Bh
- AL = new state of ??? (01h enabled, else disabled)
- Return: AX = status (0000h successful)
- Note: is affected by the flag reported at offset 05h of the system info
- returned by AH=30h, and sets the flag at offset 06h
- SeeAlso: AH=3Ch
- --------c-133C-------------------------------
- INT 13 U - QUICKCACHE II v4.20 - ENABLE/DISABLE ???
- AH = 3Ch
- AL = new state of ??? (01h enabled, else disabled)
- Return: AX = status (0000h successful)
- Note: is affected by the flag reported at offset 05h of the system info
- returned by AH=30h, and sets the flag at offset 07h
- SeeAlso: AH=3Bh
- --------c-133D-------------------------------
- INT 13 U - QUICKCACHE II v4.20 - ENABLE/DISABLE CYLINDER FLUSH FOR DRIVE
- AH = 3Dh
- AL = new state (01h enabled, else disabled)
- DL = drive number (00h = A:)
- Return: AX = status (0000h successful)
- --------c-133E-------------------------------
- INT 13 U - QUICKCACHE II v4.20 - SET SINGLE-SECTOR BONUS
- AH = 3Eh
- AL = new value for bonus
- Return: AX = status (0000h successful)
- Desc: specify the bonus score to give to single-sector transfers in order to
- keep those sectors in the cache longer
- --------c-133F-------------------------------
- INT 13 U - QUICKCACHE II v4.20 - SET BONUS THRESHOLD
- AH = 3Fh
- AL = new value for bonus threshold
- Return: AX = status (0000h successful)
- --------c-1340-------------------------------
- INT 13 U - QUICKCACHE II v4.20 - SET "sticky_max"
- AH = 40h
- AL = new value for "sticky_max"
- Return: AX = status (0000h successful)
- SeeAlso: AH=41h"QUICKCACHE"
- --------d-1341--BX55AA-----------------------
- INT 13 - IBM/MS INT 13 Extensions - INSTALLATION CHECK
- AH = 41h
- BX = 55AAh
- DL = drive (80h-FFh)
- Return: CF set on error (not supported)
- AH = 01h (invalid function)
- CF clear if successful
- BX = AA55h if installed
- AH = major version of extensions
- (01h = 1.x, 20h = 2.0/EDD-1.0, 21h = 2.1/EDD-1.1)
- AL = internal use
- CX = API subset support bitmap (see #0203)
- DH = extension version (v2.0+ ??? -- not present in 1.x)
- Note: the Phoenix Enhanced Disk Drive Specification v1.0 uses version 2.0 of
- the INT 13 Extensions API
- SeeAlso: AH=42h"INT 13 Ext",AH=48h"INT 13 Ext"
-
- Bitfields for IBM/MS INT 13 Extensions API support bitmap:
- Bit(s) Description (Table 0203)
- 0 extended disk access functions (AH=42h-44h,47h,48h) supported
- 1 removable drive controller functions (AH=45h,46h,48h,49h,INT 15/AH=52h)
- supported
- 2 enhanced disk drive (EDD) functions (AH=48h,AH=4Eh) supported
- extended drive parameter table is valid (see #0205,#0208)
- 3-15 reserved (0)
- --------c-1341-------------------------------
- INT 13 U - QUICKCACHE II v4.20 - SAVE/RESTORE ???
- AH = 41h
- AL = direction
- 01h save to file
- else restore from file
- ES:DI -> 1024-byte buffer for ???
- Return: AX = status (0000h successful, 8000h failed)
- Program: QUICKCACHE II is a shareware disk cache by P.R. Glassel and
- Associates, Inc.
- SeeAlso: AH=40h"QUICKCACHE"
- --------d-1342-------------------------------
- INT 13 - IBM/MS INT 13 Extensions - EXTENDED READ
- AH = 42h
- DL = drive number
- DS:SI -> disk address packet (see #0204)
- Return: CF clear if successful
- AH = 00h
- CF set on error
- AH = error code (see #0166)
- disk address packet's block count field set to number of blocks
- successfully transferred
- SeeAlso: AH=02h,AH=41h"INT 13 Ext",AH=43h"INT 13 Ext"
-
- Format of disk address packet:
- Offset Size Description (Table 0204)
- 00h BYTE 10h (size of packet)
- 01h BYTE reserved (0)
- 02h WORD number of blocks to transfer (max 007Fh for Phoenix EDD)
- 04h DWORD -> transfer buffer
- 08h QWORD starting absolute block number
- (for non-LBA devices, compute as
- (Cylinder*NumHeads + SelectedHead) * SectorPerTrack +
- SelectedSector - 1
- --------N-134257DX1234-----------------------
- INT 13 U - Beame&Whiteside BWLPD - INSTALLATION CHECK
- AX = 4257h ("BW")
- DX = 1234h
- Return: BX = 414Ch if installed
- Program: BWLPD is the printer daemon from the BW-NFS package
- SeeAlso: INT 62/AH=00h"ETHDEV"
- --------d-1343-------------------------------
- INT 13 - IBM/MS INT 13 Extensions - EXTENDED WRITE
- AH = 43h
- AL = write flags
- ---v1.0,2.0---
- bit 0: verify write
- bits 7-1 reserved (0)
- ---v2.1---
- 00h,01h write without verify
- 02h write with verify
- DL = drive number
- DS:SI -> disk address packet (see #0204)
- Return: CF clear if successful
- AH = 00h
- CF set on error
- AH = error code (see #0166)
- disk address packet's block count field set to number of blocks
- successfully transferred
- Note: the BIOS returns CF set/AH=01h (invalid function) if verify is
- requested but not supported
- SeeAlso: AH=03h,AH=41h"INT 13 Ext",AH=42h"INT 13 Ext",AH=44h
- --------d-1344-------------------------------
- INT 13 - IBM/MS INT 13 Extensions - VERIFY SECTORS
- AH = 44h
- DL = drive number
- DS:SI -> disk address packet (see #0204)
- Return: CF clear if successful
- AH = 00h
- CF set on error
- AH = error code (see #0166)
- disk address packet's block count field set to number of blocks
- successfully verified
- SeeAlso: AH=04h,AH=41h"INT 13 Ext",AH=42h"INT 13 Ext",AH=47h
- --------d-1345-------------------------------
- INT 13 - IBM/MS INT 13 Extensions - LOCK/UNLOCK DRIVE
- AH = 45h
- AL = operation
- 00h lock media in drive
- 01h unlock media
- 02h check lock status
- DL = drive number
- Return: CF clear if successful
- AH = 00h
- AL = lock state (00h = unlocked)
- CF set on error
- AH = error code (see #0166)
- Notes: this function is required to be supported for any removable drives
- numbered 80h or higher
- up to 255 locks may be placed on a drive, and the media will not
- be physically unlocked until all locks have been removed
- SeeAlso: AH=41h"INT 13 Ext",AH=46h,AH=49h,INT 15/AH=52h"INT 13 Extensions"
- --------d-1346-------------------------------
- INT 13 - IBM/MS INT 13 Extensions - EJECT MEDIA
- AH = 46h
- AL = 00h (reserved)
- DL = drive number
- Return: CF clear if successful
- AH = 00h
- CF set on error
- AH = error code (see #0166)
- SeeAlso: AH=49h,INT 15/AH=52h"INT 13 Extensions"
- --------d-1347-------------------------------
- INT 13 - IBM/MS INT 13 Extensions - EXTENDED SEEK
- AH = 47h
- DL = drive number
- DS:SI -> disk address packet (see #0204)
- Return: CF clear if successful
- AH = 00h
- CF set on error
- AH = error code (see #0166)
- SeeAlso: AH=0Ch,AH=42h"INT 13 Ext"
- --------d-1348-------------------------------
- INT 13 - IBM/MS INT 13 Extensions - GET DRIVE PARAMETERS
- AH = 48h
- DL = drive (80h-FFh)
- DS:SI -> buffer for drive parameters (see #0205)
- Return: CF clear if successful
- AH = 00h
- DS:SI buffer filled
- CF set on error
- AH = error code (see #0166)
- SeeAlso: AH=08h,AH=41h,AH=49h
-
- Format of IBM/MS INT 13 Extensions drive parameters:
- Offset Size Description (Table 0205)
- 00h WORD (call) size of buffer (001Ah for v1.x, 001Eh for v2.x)
- (ret) size of returned data
- 02h WORD information flags (see #0206)
- 04h DWORD number of physical cylinders on drive
- 08h DWORD number of physical heads on drive
- 0Ch DWORD number of physical sectors per track
- 10h QWORD total number of sectors on drive
- 18h WORD bytes per sector
- ---v2.0+ ---
- 1Ah DWORD -> EDD configuration parameters (see #0208)
- FFFFh:FFFFh if not available
- Note: if the size is less than 30 on call, the final DWORD will not be
- returned by a v2.x implementation
- SeeAlso: #0207,#2867
-
- Bitfields for IBM/MS INT 13 Extensions information flags:
- Bit(s) Description (Table 0206)
- 0 DMA boundary errors handled transparently
- 1 cylinder/head/sectors-per-track information is valid
- 2 removable drive
- 3 write with verify supported
- 4 drive has change-line support (required if drive >= 80h is removable)
- 5 drive can be locked (required if drive >= 80h is removable)
- 6 CHS information set to maximum supported values, not current media
- 15-7 reserved (0)
- SeeAlso: #0205
-
- Format of Phoenix Enhanced Disk Drive Spec translated drive parameter table:
- Offset Size Description (Table 0207)
- 00h WORD number of cylinders
- 02h BYTE number of heads
- 03h BYTE A0h (signature indicating translated table)
- 04h BYTE number of physical sectors per track
- 05h WORD starting write precompensation cylinder number
- 07h BYTE reserved
- 08h BYTE control byte (see #2869 at INT 41"DISK 0")
- 09h WORD number of physical cylinders
- 0Bh BYTE number of physical heads
- 0Ch WORD cylinder number of landing zone
- 0Eh BYTE number of logical sectors per track
- 0Fh BYTE checksum
- Program: the Phoenix Enhanced Disk Drive Specification is an addition to the
- IBM/MS INT 13 extensions
- SeeAlso: #0208,#2867
-
- Format of Phoenix Enhanced Disk Drive Spec Fixed Disk Parameter Table:
- Offset Size Description (Table 0208)
- 00h WORD physical I/O port base address
- 02h WORD disk-drive control port address
- 04h BYTE drive flags (see #0209)
- 05h BYTE proprietary information
- bits 7-4 reserved (0)
- bits 3-0: Phoenix proprietary (used by BIOS)
- 06h BYTE IRQ (bits 3-0; bits 7-4 reserved and must be 0)
- 07h BYTE sector count for multi-sector transfers
- 08h BYTE DMA control
- bits 7-4: DMA type (0-2) as per ATA-2 specification
- bits 3-0: DMA channel
- 09h BYTE programmed I/O control
- bits 7-4: reserved (0)
- bits 3-0: PIO type (1-4) as per ATA-2 specification
- 0Ah WORD drive options (see #0210)
- 0Ch 2 BYTEs reserved (0)
- 0Eh BYTE extension revision level (high nybble=major, low nybble=minor)
- (currently 10h for v1.0 and 11h for v1.1)
- 0Fh BYTE 2's complement checksum of bytes 00h-0Eh
- 8-bit sum of all bytes 00h-0Fh should equal 00h
- SeeAlso: #0207
-
- Bitfields for Phoenix Enhanced Disk Drive Spec drive flags:
- Bit(s) Description (Table 0209)
- 7 reserved (1)
- 6 LBA enabled
- 5 reserved (1)
- 4 drive is slave
- 3-0 reserved (0)
- SeeAlso: #0208,#0210
-
- Bitfields for Phoenix Enhanced Disk Drive Spec drive options:
- Bit(s) Description (Table 0210)
- 0 fast PIO enabled
- 1 fast DMA access enabled
- 2 block PIO (multi-sector transfers) enabled
- 3 CHS translation enabled
- 4 LBA translation enabled
- 5 removable media
- 6 ATAPI device (CD-ROM)
- 7 32-bit transfer mode
- ---v1.1---
- 8 ATAPI device uses DRQ to signal readiness for packet command
- (must be 0 if bit 6 is 0)
- 10-9 translation type (must be 00 if bit 3 is 0)
- 00 Phoenix bit-shifting translation
- 01 LBA-assisted translation
- 10 reserved
- 11 proprietary translation
- 15-8 reserved
- SeeAlso: #0208,#0209
- --------d-1349-------------------------------
- INT 13 - IBM/MS INT 13 Extensions - EXTENDED MEDIA CHANGE
- AH = 49h
- DL = drive number
- Return: CF clear if media has not changed
- AH = 00h
- CF set if media may have changed
- AH = 06h (see #0166)
- Note: unlike AH=16h, any drive number may be specified
- SeeAlso: AH=16h,AH=41h"INT 13 Ext",AH=46h
- --------d-134A-------------------------------
- INT 13 - Bootable CD-ROM - INITIATE DISK EMULATION
- AH = 4Ah
- AL = 00h
- DS:SI -> specification packet (see #0211)
- Return: CF clear if successful
- CF set on error (drive will not be in emulation mode)
- AX = return codes
- SeeAlso: AH=48h,AX=4B00h,AH=4Ch,AH=4Dh
-
- Format of Bootable CD-ROM Specification Packet:
- Offset Size Description (Table 0211)
- 00h BYTE size of packet in bytes (13h)
- 01h BYTE boot media type (see #0212)
- 02h BYTE drive number
- 00h floppy image
- 80h bootable hard disk
- 81h-FFh nonbootable or no emulation
- 03h BYTE CD-ROM controller number
- 04h DWORD Logical Block Address of disk image to emulate
- 08h WORD device specification (see also #0212)
- (IDE) bit 0: drive is slave instead of master
- (SCSI) bits 7-0: LUN and PUN
- bits 15-8: bus number
- 0Ah WORD segment of 3K buffer for caching CD-ROM reads
- 0Ch WORD load segment for initial boot image
- if 0000h, load at segment 07C0h
- 0Eh WORD number of 512-byte virtual sectors to load
- (only valid for AH=4Ch)
- 10h BYTE low byte of cylinder count (for INT 13/AH=08h)
- 11h BYTE sector count, high bits of cylinder count (for INT 13/AH=08h)
- 12h BYTE head count (for INT 13/AH=08h)
- SeeAlso: #0213,AH=08h
-
- Bitfields for Bootable CD-ROM boot media type:
- Bit(s) Description (Table 0212)
- 3-0 media type
- 0000 no emulation
- 0001 1.2M diskette
- 0010 1.44M diskette
- 0011 2.88M diskette
- 0100 hard disk (drive C:)
- other reserved
- 5-4 reserved (0)
- 6 image contains ATAPI driver
- 7 image contains SCSI driver(s)
- SeeAlso: #0211
- --------d-134B00-----------------------------
- INT 13 - Bootable CD-ROM - TERMINATE DISK EMULATION
- AX = 4B00h
- DL = drive number or 7Fh to terminate all emulations
- DS:SI -> empty specification packet (see #0211)
- Return: CF clear if successful
- CF set on error (drive will still be in emulation mode)
- AX = return codes
- DS:SI specification packet filled
- SeeAlso: AH=48h,AH=4Ah,AX=4B00h,AH=4Ch,AH=4Dh
- --------d-134B01-----------------------------
- INT 13 - Bootable CD-ROM - GET STATUS
- AX = 4B01h
- DL = drive number
- DS:SI -> empty specification packet (see #0211)
- Return: CF clear if successful
- CF set on error
- AX = return codes
- DS:SI specification packet filled
- Note: same as AX=4B00h, but does not terminate emulation
- SeeAlso: AH=48h,AH=4Ah,AX=4B00h,AH=4Ch,AH=4Dh
- --------d-134C-------------------------------
- INT 13 - Bootable CD-ROM - INITIATE DISK EMULATION AND BOOT
- AH = 4Ch
- AL = 00h
- DS:SI -> specification packet (see #0211)
- Return: never, if successful
- CF set (error while attempting to boot)
- AX = error codes
- SeeAlso: AH=48h,AH=4Ah,AX=4B00h,AH=4Dh
- --------d-134D00-----------------------------
- INT 13 - Bootable CD-ROM - RETURN BOOT CATALOG
- AX = 4D00h
- DS:SI -> command packet (see #0213)
- Return: CF clear if successful
- CF set on error
- AX = return codes
- SeeAlso: AH=48h,AH=4Ah,AX=4B00h,AH=4Ch
-
- Format of Bootable CD-ROM "get boot catalog" command packet:
- Offset Size Description (Table 0213)
- 00h BYTE size of packet in bytes (08h)
- 01h BYTE number of sectors of boot catalog to read
- 02h DWORD -> buffer for boot catalog
- 06h WORD first sector in boot catalog to transfer
- SeeAlso: #0211
- --------d-134E-------------------------------
- INT 13 - IBM/MS INT 13 Extensions v2.1 - SET HARDWARE CONFIGURATION
- AH = 4Eh
- AL = function
- 00h enable prefetch
- 01h disable prefetch
- 02h set maximum PIO transfer mode
- 03h set PIO mode 0
- 04h set default PIO transfer mode
- 05h enable INT 13 DMA maximum mode
- 06h disable INT 13 DMA
- DL = drive number
- Return: CF clear if successful
- AH = 00h
- AL = status
- 00h command was safe (only affected specified drive)
- 01h other devices are affected
- CF set on error
- AH = error code (see #0166)
- Note: DMA and PIO modes are mutually exclusive, so selecting DMA disables
- PIO (for either the specified device or all devices on that
- controller), and selecting PIO disables DMA
- SeeAlso: AH=41h"INT 13 Extensions"
- --------v-135001------------------------
- INT 13 - VIRUS - "Andropinis" - INSTALLATION CHECK
- AX = 5001h
- Return: AX = 0150h if resident
- SeeAlso: AX=FD50h"VIRUS",INT 21/AX=0B56h
- --------v-135342CX0001-----------------------
- INT 13 - ScanBoot - INSTALLATION CHECK
- AX = 5342h ("SB")
- CX = 0001h
- DX = 0000h
- Return: CF clear if ScanBoot installed
- AX = 0000h
- CX = serial number ("SW" if shareware release)
- DX = version
- BX,SI,ES destroyed
- Program: ScanBoot is a virus-detection TSR by PanSoft
- --------d-135501-----------------------------
- INT 13 - Seagate ST01/ST02 - Inquiry
- AX = 5501h
- DH = number of bytes to transfer
- DL = drive ID (80h, 81h, ...)
- ES:BX -> buffer for results
- Return: ES:BX buffer filled with the Inquiry results
- Notes: the ST01/ST02 BIOS does not return any success/failure indication,
- so all commands must be assumed to have been successful
- the ST01/ST02 BIOS always maps its drives after the previous BIOS
- drives without changing the BIOS drive count at 0040h:0075h
- this command is identical to the SCSI Inquiry command
- --------d-135502-----------------------------
- INT 13 - Seagate ST01/ST02 - RESERVED
- AX = 5502h
- --------d-135503-----------------------------
- INT 13 - Seagate ST01/ST01 - Set Device Type Qualifier (DTQ)
- AX = 5503h
- DH = DTQ byte (see #0214)
- DL = drive ID (80h, 81h, ...)
- Return: nothing
-
- Bitfields for DTQ byte:
- Bit(s) Description (Table 0214)
- 7 reserved
- 6 SCSI drive attached
- 5 reserved
- 4 selected drive is ST225N/NP (Paired)
- 3 selected drive is ST225N
- 2 Host Adapter checks parity on the selected drive
- 1 selected drive has been installed
- 0 Seagate installation software present
- --------d-135504-----------------------------
- INT 13 U - Seagate - ??? - RETURN IDENTIFICATION
- AX = 5504h
- DX = drive (bit 7 set for hard disk)
- Return: CF clear if successful
- AX = 4321h if ST01/ST02h
- AX = 4322h if ??? Seagate controller
- CF set on error
- SeeAlso: AX=5505h,AX=5514h
- --------d-135504-----------------------------
- INT 13 - Seagate ST01/ST02 - RETURN IDENTIFICATION
- AX = 5504h
- DL = drive ID (80h, 81h, ...)
- Return: AX = 4321h
- BL = selected drive number (00h, 01h)
- BH = number of drives attached to Host Adapter (max. 2)
- --------d-135505-----------------------------
- INT 13 - Seagate - ??? - PARK HEADS
- AX = 5505h
- DX = drive (bit 7 set for hard disk)
- Return: CF clear if successful
- CF set on error
- SeeAlso: AX=5504h,AX=5515h
- --------d-135505-----------------------------
- INT 13 - Seagate ST01/ST02 - PARK HEADS
- AX = 5505h
- DL = drive ID (80h, 81h, ...)
- DH = subfunction
- 00h park heads (SCSI Stop command)
- 01h un-park heads (SCSI Start command)
- Return: nothing
- --------d-135506-----------------------------
- INT 13 - Seagate ST01/ST02 - SCSI Bus Parity
- AX = 5506h
- DL = drive ID (80h, 81h, ...)
- DH = subfunction
- 00h disable parity check
- 01h enable parity check
- 02h return current parity setting
- Return: AL = status
- 00h parity checking disabled
- 01h parity checking enabled
- --------d-135507-----------------------------
- INT 13 - Seagate ST01/ST02 - RESERVED FUNCTIONS
- AX = 5507h to 550Dh
- Note: officially listed as "reserved"
- --------d-135514-----------------------------
- INT 13 U - Seagate - ???
- AX = 5514h
- DX = drive (bit 7 set for hard disk)
- Return: CF clear if successful
- CF set on error
- AX = return value (FEBEh,FEBFh,FEDAh,FEDBh)
- SeeAlso: AX=5504h,AX=5515h
- --------d-135515-----------------------------
- INT 13 U - Seagate - PARK HEADS???
- AX = 5515h
- DX = drive (bit 7 set for hard disk)
- Return: CF clear if successful
- CF set on error
- Note: appears to be identical to AX=5505h
- SeeAlso: AX=5504h,AX=5505h
- --------d-1359-------------------------------
- INT 13 - SyQuest - Generic SCSI pass through
- AH = 59h
- CX = HOST_ID, 0-based
- DX = 80h
- ES:BX pointer to SCSI structure (see #0215)
- Return: CF clear
- AH = 95h
- SeeAlso: AH=12h"SyQuest",AH=13h"SyQuest",AH=1Fh"SyQuest"
-
- Format of SyQuest SCSI structure:
- Offset Size Description (Table 0215)
- 00h WORD opcode (see #0216)
- 02h BYTE target's SCSI ID
- 03h BYTE target's logical unit number
- 04h BYTE data direction (00h no data xfer, 01h data in, FFh data out)
- 05h BYTE host status
- 00h successful
- 01h selection time out
- 02h data over-run or under-run
- 06h BYTE target status at command completion
- 00h successful
- 02h check status
- 08h busy
- 07h BYTE command data block length
- 08h DWORD request data length
- 0Ch DWORD result data length (actual length of data transferred)
- 10h DWORD -> CDB (see #2907,#2908,#2909)
- 14h DWORD -> data buffer
- Note: The handler does not perform a 'Request Sense' command if there was an
- error
-
- (Table 0216)
- Values for SCSI opcode:
- 00h verify interface
- clears carry flag and returns if function is available
- 01h returns the ID of the INT 13h Handler in a NULL terminated string of
- length less than 40 byte including the terminator.
- The string is stored in the buffer pointed by p_buf.
- 02h device mapping info. The caller provides a one byte buffer.
- The handler stores the Int 13h Device ID (80h or above) in the buffer.
- It stores 0 if that target does not exists.
- 03h execute SCSI command
- 04h device reset
- 05h SCSI bus reset
- SeeAlso: #0215
- --------d-1370-------------------------------
- INT 13 - Priam EDVR.SYS DISK PARTITIONING SOFTWARE???
- AH = 70h
- ???
- Return: ???
- Note: Priam's EDISK.EXE (FDISK replacement) and EFMT.EXE (low-level
- formatting program) make this call, presumably to EDVR.SYS (the
- partitioning driver)
- SeeAlso: AH=ADh
- ----------1375-------------------------------
- INT 13 - ???
- AH = 75h
- ???
- Return: AH = ???
- ???
- Note: intercepted by PC-Cache (v5.1 only)
- ----------1376-------------------------------
- INT 13 - ???
- AH = 76h
- ???
- Return: AH = ???
- ???
- Note: intercepted by PC-Cache (v5.1 only)
- --------c-137B00-----------------------------
- INT 13 - NOW! v3.05 - GET INFORMATION
- AX = 7B00h
- CX:DX -> 1F8h-byte buffer for information record (see #0217)
- Return: AX = 0000h
- BX = segment of main resident code
- ES = ???
- Program: NOW! is a disk cache by Vertisoft Systems, Inc.
- SeeAlso: AX=7B02h,AH=EFh
-
- Format of NOW! information record:
- Offset Size Description (Table 0217)
- 00h 80 BYTEs name of directory from which NOW! was started
- 50h 424 BYTEs ???
- 81h ? BYTEs array of bytes for ???
- F7h 250 BYTEs array of 25 entries, one per drive???
- Offset Size Description
- 00h 2 BYTEs ???
- 02h WORD ???
- 04h WORD ???
- 06h 4 BYTEs ???
- 1F1h 7 BYTEs ???
- --------c-137B01-----------------------------
- INT 13 - NOW! v3.05 - ???
- AX = 7B01h
- Return: DX = segment of ???
- SeeAlso: AX=7B00h
- --------c-137B02-----------------------------
- INT 13 - NOW! v3.05 - SET INFORMATION
- AX = 7B02h
- BX = segment of ??? (10h above a PSP)
- CX:DX -> 1F8h-byte information record (see #0217)
- Return: ???
- Program: NOW! is a disk cache by Vertisoft Systems, Inc.
- Note: NOW! grabs the INT 24h value from the PSP reached via the segment in
- BX
- SeeAlso: AX=7B00h
- --------c-137B03-----------------------------
- INT 13 - NOW! v3.05 - ???
- AX = 7B03h
- ???
- Return: ???
- SeeAlso: AX=7B00h,AX=7B04h
- --------c-137B04-----------------------------
- INT 13 - NOW! v3.05 - ???
- AX = 7B04h
- ???
- Return: ???
- SeeAlso: AX=7B03h
- --------c-137B05-----------------------------
- INT 13 - NOW! v3.05 - GET DISK ACCESSES???
- AX = 7B05h
- Return: BX:AX = number of physical accesses???
- DX:CX = total disk accesses???
- SeeAlso: AX=7B00h,AX=7B06h
- --------c-137B06-----------------------------
- INT 13 - NOW! v3.05 - GET ???
- AX = 7B06h
- BX = ???
- Return: AX = 0000h
- BX = ???
- SeeAlso: AX=7B05h,AX=7B07h
- --------c-137B07-----------------------------
- INT 13 - NOW! v3.05 - GET ???
- AX = 7B07h
- Return: AX = ???
- BX = ???
- CX = ???
- DX = ???
- SeeAlso: AX=7B06h
- --------c-137B08-----------------------------
- INT 13 - NOW! v3.05 - ???
- AX = 7B08h
- CX = ??? (default 00h)
- Return: ???
- SeeAlso: AX=7B00h
- --------c-1380--CX6572-----------------------
- INT 13 - FAST! v4.02+ - API
- AH = 80h
- CX = 6572h
- DX = 1970h
- ES:BX -> request packet (see #0219)
- AL = function number (see #0218)
- Return: AH = status (except function 06h)
- 00h if successful
- 01h invalid function
- 05h not supported by the installed variant
- CF clear if successful
- CF set on error
- AL may be destroyed
- Program: FAST! is a disk cache by Future Computing Systems and marketed by
- BLOC Publishing Corp.
- SeeAlso: AX=8001h,AX=8006h,AX=8007h
- Index: hotkeys;FAST!
-
- (Table 0218)
- Values for FAST! function:
- 01h get cache information (see AX=8001h)
- 04h disable cache
- 05h enable cache and reset statistics
- 06h installation check (see AX=8006h)
- 07h unhook interrupts (see AX=8007h)
- 09h flush cache
- 0Ah (v4.02+) enable staged writes
- 0Bh (v4.02+) disable staged writes
- 0Ch (v4.02+) enable beep on flush
- 0Dh (v4.02+) disable beep on flush
- 0Eh ???
- 0Fh ???
- 10h (v4.12+) enable hotkeys
- 11h (v4.12+) disable hotkeys
- 12h (v4.13+) set idle delay
- 13h (v4.13+) set flush dirty percentage
- 14h (v5.00+) enable mouse checks
- 15h (v5.00+) disable mouse checks
- 16h (v5.00d+) reduce cache size to minimum
- 17h (v5.00d+) increase cache size to maximum
-
- Format of FAST! request packet:
- Offset Size Description (Table 0219)
- 00h DWORD pointer to 19-byte signature string (see #0220)
- 04h DWORD pointer to buffer for data (if needed by function)
-
- (Table 0220)
- Values for FAST! v4.04-v5.03 signature string:
- 13h 07h 06h 08h 11h 18h 0Fh 0Eh 02h 18h 13h 08h 0Bh 08h 01h 00h 04h 08h 15h
- --------c-138001CX6572-----------------------
- INT 13 - FAST! v4.02+ - GET CACHE INFORMATION
- AX = 8001h
- CX = 6572h
- DX = 1970h
- ES:BX -> request packet (see #0221)
- Return: AH = 00h if successful
- SeeAlso: AH=80h,AX=8006h
-
- Format of FAST! request packet:
- Offset Size Description (Table 0221)
- 00h DWORD -> 19-byte signature string (see #0220)
- 04h DWORD -> buffer for cache information (see #0222)
-
- Format of FAST! cache information (v5.00-5.03):
- Offset Size Description (Table 0222)
- 00h WORD binary version number of FAST! (v5.00 = 01F4h)
- 02h BYTE revision letter (61h = X.XXa, 62h = X.XXb, etc.)
- 03h BYTE FAST! variant
- (01h = FASTE, 02h = FASTX BIOS, 04h = FASTC, 20h = FASTX XMS)
- 04h DWORD total number of read requests
- 08h DWORD number of physical disk reads
- 0Ch DWORD grabbed hash buckets
- 10h DWORD "st_386mem"
- 14h DWORD total number of writes (only counted when staging enabled)
- 18h DWORD number of physical disk writes (only when staging enabled)
- 1Ch DWORD number of write errors while flushing cache
- 20h WORD flags1 (see #0223)
- 22h WORD flags
- bit 0: ???
- bit 1: staged writes enabled
- 24h WORD ???
- 26h WORD maximum cache size in KB
- 28h WORD minimum cache size in KB
- 2Ah WORD segment of first cache buffer (FASTC)
- segment of EMS page frame (FASTE)
- XMS handle (FASTX XMS)
- 2Ch WORD number of hash buckets containing no entries
- 2Eh WORD number of hash buckets containing one entry
- 30h WORD number of hash buckets containing two entries
- 32h WORD number of hash buckets containing three entries
- 34h WORD number of hash buckets containing four entries
- 36h WORD number of hash buckets containing five entries
- 38h WORD maximum contiguous sectors
- 3Ah WORD hash factor
- 3Ch WORD number of paragraphs of memory used below 1M
- 3Eh WORD entries per hash bucket
- 40h WORD idle delay in seconds
- 42h 2 BYTEs ???
- 44h WORD staged write threshold percentage
- 46h 2 BYTEs ???
- 48h WORD number of dirty sectors
- 4Ah WORD number of staged write buffers
- 4Ch WORD current cache size in KB
- 4Eh WORD beep frequency in Hz
- 50h WORD ???
- 52h WORD ???
-
- Bitfields for FAST! flags1:
- Bit(s) Description (Table 0223)
- 0 beep on flush
- 3 hotkeys enabled
- 4 mouse idle check enabled
- 8 caching enabled
- 13 ???
- --------c-138006CX6572-----------------------
- INT 13 - FAST! v4.02+ - INSTALLATION CHECK
- AX = 8006h
- CX = 6572h
- DX = 1970h
- ES:BX -> request packet (see #0224)
- Return: AX = 1965h if installed
- SeeAlso: AH=80h,AX=8001h,AX=8007h
-
- Format of FAST! request packet:
- Offset Size Description (Table 0224)
- 00h DWORD -> 19-byte signature string (see #0220)
- --------c-138007CX6572-----------------------
- INT 13 - FAST! v4.02+ - UNHOOK INTERRUPTS
- AX = 8007h
- CX = 6572h
- DX = 1970h
- ES:BX -> request packet (see #0225)
- Return: AX = 1965h if installed
- SeeAlso: AH=80h,AX=8006h
- Index: uninstall;FAST!
-
- Format of FAST! request packet:
- Offset Size Description (Table 0225)
- 00h DWORD -> 19-byte signature string (see #0220)
- --------c-1381--SI4358-----------------------
- INT 13 - Super PC-Kwik v3.20+ - ???
- AH = 81h
- SI = 4358h
- ???
- Return: ???
- Note: PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
- Super PC-Kwik, and thus support this call (PC-Cache v5.1 corresponds
- to PC-Kwik v3.20 and PC-Cache v5.5 to PC-Kwik v3.27)
- returns immediately in PC-Cache v5.x
- Index: PC-Cache|Qualitas Qcache
- --------c-1382--SI4358-----------------------
- INT 13 - Super PC-Kwik v3.20+ - ???
- AH = 82h
- SI = 4358h
- ???
- Return: AL = ???
- Note: PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
- Super PC-Kwik, and thus support this call
- SeeAlso: AH=84h
- Index: PC-Cache|Qualitas Qcache
- --------c-1383--SI4358-----------------------
- INT 13 - Super PC-Kwik v3.20+ - ???
- AH = 83h
- SI = 4358h
- AL = ???
- ES:BX -> ???
- ???
- Return: ???
- Note: PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
- Super PC-Kwik, and thus support this call
- SeeAlso: AH=85h
- Index: PC-Cache|Qualitas Qcache
- --------c-1384--SI4358-----------------------
- INT 13 - Super PC-Kwik v3.20+ - ???
- AH = 84h
- SI = 4358h
- AL = ???
- ???
- Return: AL = ???
- Note: PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
- Super PC-Kwik, and thus support this call
- SeeAlso: AH=82h
- Index: PC-Cache|Qualitas Qcache
- --------c-1385--SI4358-----------------------
- INT 13 - Super PC-Kwik v3.20+ - ???
- AH = 85h
- SI = 4358h
- AL = ???
- DL = ???
- ???
- Return: ???
- Note: PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
- Super PC-Kwik, and thus support this call (PC-Cache v5.1 corresponds
- to PC-Kwik v3.20)
- SeeAlso: AH=83h
- Index: PC-Cache|Qualitas Qcache
- --------c-1386--SI4358-----------------------
- INT 13 - Super PC-Kwik v4.00+ - ???
- AH = 86h
- SI = 4358h
- ???
- Return: ???
- Note: Qualitas Qcache v4.00 is an OEM version of Super PC-Kwik v4.00, and
- thus supports this call
- Index: Qualitas Qcache
- --------c-1387--SI4358-----------------------
- INT 13 - Super PC-Kwik v4.00+ - ???
- AH = 87h
- SI = 4358h
- ???
- Return: AH = status??? (00h)
- CX = ???
- DX = ??? (0000h)
- Note: Qualitas Qcache v4.00 is an OEM version of Super PC-Kwik v4.00, and
- thus supports this call
- Index: Qualitas Qcache
- --------c-1388--SI4358-----------------------
- INT 13 - Super PC-Kwik v4.00+ - ???
- AH = 88h
- SI = 4358h
- ???
- Return: AH = status??? (00h)
- CX = ???
- DX = ??? (0000h)
- Note: Qualitas Qcache v4.00 is an OEM version of Super PC-Kwik v4.00, and
- thus supports this call
- Index: Qualitas Qcache
- --------c-1389--SI4358-----------------------
- INT 13 - Super PC-Kwik v5.10+ - ???
- AH = 89h
- SI = 4358h
- ???
- Return: ???
- --------c-138A--SI4358-----------------------
- INT 13 - Super PC-Kwik v5.10+ - ???
- AH = 8Ah
- SI = 4358h
- ???
- Return: ???
- --------c-138EED-----------------------------
- INT 13 - HyperDisk v4.01+ - ???
- AX = 8EEDh
- ???
- Return: ???
- Program: HyperDisk is a shareware disk cache by HyperWare (Roger Cross)
- SeeAlso: AX=8EEEh,AX=8EEFh,AH=EEh,INT 2F/AX=DF00h
- --------c-138EEE-----------------------------
- INT 13 - HyperDisk v4.01+ - ???
- AX = 8EEEh
- Return: CF set
- AX = CS of HyperDisk resident code
- ???
- Note: identical to AX=8EEFh in HYPERDKX v4.21-4.30
- SeeAlso: AX=8EEDh,AX=8EEFh,AH=EEh
- --------c-138EEF-----------------------------
- INT 13 - HyperDisk v4.01+ - ???
- AX = 8EEFh
- Return: CF set
- AX = CS of HyperDisk resident code
- ???
- Note: identical to AX=8EEEh in HYPERDKX v4.21-4.30
- SeeAlso: AX=8EEDh,AX=8EEEh,AH=EEh
- --------c-1392--SI4358-----------------------
- INT 13 - Super PC-Kwik v5.10+ - ???
- AH = 92h
- SI = 4358h
- ???
- Return: AH = status??? (00h)
- DL = ???
- SeeAlso: AH=93h
- --------c-1393--SI4358-----------------------
- INT 13 - Super PC-Kwik v5.10+ - ???
- AH = 93h
- SI = 4358h
- ???
- Return: AH = status??? (00h)
- AL = ???
- SeeAlso: AH=92h
- --------c-1394--SI4358-----------------------
- INT 13 - Super PC-Kwik v5.10+ - ???
- AH = 94h
- SI = 4358h
- ???
- Return: ???
- --------c-1395--SI4358-----------------------
- INT 13 - Super PC-Kwik v5.10+ - ???
- AH = 95h
- SI = 4358h
- ???
- Return: AH = status??? (00h)
- DX = ???
- --------c-1396--SI4358-----------------------
- INT 13 - Super PC-Kwik v5.10+ - ???
- AH = 96h
- SI = 4358h
- AL = ??? (01h)
- BX = ??? (0790h)
- DL = ???
- Return: AH = status??? (00h)
- DX = ???
- --------c-1397--SI4358-----------------------
- INT 13 - Super PC-Kwik v5.10+ - ???
- AH = 97h
- SI = 4358h
- ???
- Return: ???
- --------c-1398--SI4358-----------------------
- INT 13 - Super PC-Kwik v5.10+ - ???
- AH = 98h
- SI = 4358h
- ???
- Return: ???
- --------c-1399--SI4358-----------------------
- INT 13 - Super PC-Kwik v5.10+ - ???
- AH = 99h
- SI = 4358h
- ???
- Return: ???
- --------c-139A--SI4358-----------------------
- INT 13 - Super PC-Kwik v5.10+ - ???
- AH = 9Ah
- SI = 4358h
- ???
- Return: ???
- --------c-139B--SI4358-----------------------
- INT 13 - Super PC-Kwik v5.10+ - ???
- AH = 9Bh
- SI = 4358h
- ???
- Return: ???
- --------c-139C--SI4358-----------------------
- INT 13 - Super PC-Kwik v5.10+ - ???
- AH = 9Ch
- SI = 4358h
- ???
- Return: ???
- Note: functions 9Ch and 9Dh are the only ones which are fully reentrant; all
- other PC-Kwik API calls (INT 13/81h-B0h) return AX=0200h and CF clear
- if a previous call is still in progress
- --------c-139D--SI4358-----------------------
- INT 13 - Super PC-Kwik v5.10+ - ???
- AH = 9Dh
- SI = 4358h
- ???
- Return: ???
- --------c-13A0--SI4358-----------------------
- INT 13 - Super PC-Kwik v3.20+ - GET RESIDENT CODE SEGMENT
- AH = A0h
- SI = 4358h
- Return: AX = segment of resident code
- Note: PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
- Super PC-Kwik, and thus support this call (note that PC-Cache v5.5
- corresponds to PC-Kwik v3.27)
- SeeAlso: INT 16/AX=FFA5h/CX=1111h
- Index: PC-Cache|Qualitas Qcache
- --------c-13A1--SI4358-----------------------
- INT 13 - Super PC-Kwik v3.20+ - FLUSH CACHE
- AH = A1h
- SI = 4358h
- Return: CF clear
- AH = 00h (v5.10)
- Note: PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
- Super PC-Kwik, and thus support this call (note that PC-Cache v5.1
- corresponds to PC-Kwik v3.20)
- SeeAlso: INT 16/AX=FFA5h/CX=FFFFh
- Index: PC-Cache|Qualitas Qcache
- --------c-13A2--SI4358-----------------------
- INT 13 - Super PC-Kwik v3.20+ - ???
- AH = A2h
- SI = 4358h
- ???
- Return: ???
- Note: PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
- Super PC-Kwik, and thus support this call (note that PC-Cache v5.1
- corresponds to PC-Kwik v3.20)
- Index: PC-Cache|Qualitas Qcache
- --------c-13A3--SI4358-----------------------
- INT 13 U - Super PC-Kwik v5.10+ - DISABLE CACHE
- AH = A3h
- SI = 4358h
- Return: CF clear
- SeeAlso: AH=A4h
- --------c-13A4--SI4358-----------------------
- INT 13 U - Super PC-Kwik v5.10+ - ENABLE CACHE
- AH = A4h
- SI = 4358h
- Return: CF clear
- SeeAlso: AH=A3h
- --------c-13A5--SI4358-----------------------
- INT 13 CU - Super PC-Kwik v5.10+ - PROGRAM TERMINATION NOTIFICATION
- AH = A5h
- SI = 4358h
- Return: AX = ???
- SI = ???
- Notes: called and used internally by Super PC-Kwik when a program terminates
- via INT 21/AH=00h, INT 21/AH=31h, or INT 21/AH=4Ch
- this call is not supported by Qualitas Qcache 4.00
- Index: PC-Cache
- SeeAlso: AH=A6h,AH=A9h,INT 21/AH=00h,INT 21/AH=31h,INT 21/AH=4Ch
- --------c-13A6--SI4358-----------------------
- INT 13 CU - Super PC-Kwik v5.10+ - PROGRAM LOAD NOTIFICATION
- AH = A6h
- SI = 4358h
- DS:DX -> ASCIZ program name
- ES:BX -> EXEC data block (see #1276 at INT 21/AH=4Bh)
- Return: ???
- Note: called and used internally by Super PC-Kwik when a program is loaded
- with INT 21/AX=4B00h
- SeeAlso: AH=A5h,AH=A9h,INT 21/AH=4Bh
- --------c-13A7--SI4358-----------------------
- INT 13 CU - Super PC-Kwik 5.1 - ???
- AH = A7h
- SI = 4358h
- Return: ???
- Note: called and used internally by Super PC-Kwik on some INT 21 calls
- SeeAlso: AH=A5h,AH=A6h,AH=A8h
- --------v-13A759-----------------------------
- INT 13 U - Novell DOS 7 - SDRes v27.03 - ???
- AX = A759h
- Return: AX = 59A7h if installed
- DX:BX -> ??? data
- Program: SDRes is the resident portion of the Search&Destroy antiviral by
- Fifth Generation Systems, as bundled with Novell DOS 7
- SeeAlso: INT 21/AH=0Eh/DL=ADh
- --------c-13A8--SI4358-----------------------
- INT 13 CU - Super PC-Kwik 5.1 - ???
- AH = A8h
- SI = 4358h
- Return: ???
- Note: called and used internally by Super PC-Kwik on some INT 21 calls
- SeeAlso: AH=A5h,AH=A6h,AH=A7h
- --------c-13A9--SI4358-----------------------
- INT 13 CU - Super PC-Kwik 5.1 - EXITCODE RETRIEVAL NOTIFICATION
- AH = A9h
- SI = 4358h
- Return: ???
- Note: called and used internally by Super PC-Kwik when an application issues
- INT 21/AH=4Dh
- SeeAlso: AH=A5h,AH=A6h,INT 21/AH=4Dh
- --------c-13AA--SI4358-----------------------
- INT 13 - Super PC-Kwik v4+ - ???
- AH = AAh
- SI = 4358h
- ???
- Return: ???
- Note: Qualitas Qcache is an OEM version of Super PC-Kwik, and thus supports
- this call
- --------c-13AB--SI4358-----------------------
- INT 13 - Super PC-Kwik v4+ - ???
- AH = ABh
- SI = 4358h
- ???
- Return: ???
- Note: Qualitas Qcache is an OEM version of Super PC-Kwik, and thus supports
- this call
- --------c-13AC--SI4358-----------------------
- INT 13 - Super PC-Kwik v4+ - ???
- AH = ACh
- SI = 4358h
- ???
- Return: ???
- Note: Qualitas Qcache is an OEM version of Super PC-Kwik, and thus supports
- this call
- --------d-13AD-------------------------------
- INT 13 - Priam HARD DISK CONTROLLER???
- AH = ADh
- ???
- Return: ???
- Note: this call is made from Priam's EFMT.EXE (low-level formatter), probably
- to check the ROM type on the controller for their hard disk kits
- SeeAlso: AH=70h
- --------c-13AD--SI4358-----------------------
- INT 13 - Super PC-Kwik v4+ - ???
- AH = ADh
- SI = 4358h
- ???
- Return: ???
- Note: Qualitas Qcache is an OEM version of Super PC-Kwik, and thus supports
- this call
- --------c-13AE--SI4358-----------------------
- INT 13 - Super PC-Kwik v5.10+ - ???
- AH = AEh
- SI = 4358h
- ???
- Return: ???
- --------c-13B0--SI4358-----------------------
- INT 13 - Super PC-Kwik v3.20+ - ???
- AH = B0h
- SI = 4358h
- ???
- Return: ???
- Note: PC Tools PC-Cache 5.x is an OEM version of Super PC-Kwik, and thus
- supports this call; Qualitas Qcache does not support it
- Index: PC-Cache
- --------v-13EC00-----------------------------
- INT 13 - VIRUS - "Tiso" - INSTALLATION CHECK
- AX = EC00h
- Return: CF clear if installed
- SeeAlso: AH=F2h,INT 12/AX=4350h/BX=4920h
- --------d-13EE-------------------------------
- INT 13 - SWBIOS - SET 1024-CYLINDER FLAG
- AH = EEh
- DL = drive number (80h, 81h)
- Return: CF clear
- AH = 00h
- Program: SWBIOS is a TSR by Ontrack Computer Systems
- Desc: the following INT 13 call will add 1024 to the specified cylinder
- number to get the actual cylinder number desired
- Notes: the flag is cleared by all INT 13 calls except AH=EEh and AH=EFh
- Disk Manager also supports these calls
- this function is also supported by HyperDisk v4.01+ and PC-Cache v5.5+,
- in order to allow caching of drives using SWBIOS to access more than
- 1024 cylinders
- for software which supports that call, this function is equivalent to
- calling AH=EFh with CX=0400h
- SeeAlso: AH=F9h,AH=FEh,INT 16/AX=FFA5h/CX=1111h,INT 2F/AX=DF00h
- Index: PC-Cache;huge disks|Disk Manager
- --------c-13EF-------------------------------
- INT 13 - Ontrack Drive Rocket - SET CYLINDER OFFSET
- AH = EFh
- CX = cylinder offset for next INT 13 call
- DL = drive number (80h, 81h)
- Return: CF clear
- AH = 00h
- Program: Drive Rocket is a drive accelerator by Ontrack Computer Systems for
- IDE drives supporting the read multiple and write multiple commands
- Desc: the following INT 13 call will add the number given by this call to
- the specified cylinder to get the actual cylinder number, then reset
- the offset to zero
- Note: this function is also supported by the NOW! disk cache, and presumably
- newer versions of SWBIOS and Disk Manager
- for software which supports this call, AH=EEh is equivalent to calling
- this function with CX=0400h
- the cylinder offset is reset to 0 by all INT 13 called except AH=EEh
- and AH=EFh
- SeeAlso: AX=7B00h
- --------v-13F2-------------------------------
- INT 13 - VIRUS - "Neuroquila" - INSTALLATION CHECK
- AH = F2h
- Return: CF ??? if installed
- SeeAlso: AX=EC00h,INT 12/AX=4350h/BX=4920h,INT 21/AX=0B56h
- --------d-13F9-------------------------------
- INT 13 - SWBIOS - INSTALLATION CHECK
- AH = F9h
- DL = drive number (80h,81h)
- Return: CF clear
- DX = configuration word
- bit 15 set if other SWBIOS extensions available
- CF set on error
- Program: SWBIOS is a TSR by Ontrack Computer Systems
- Note: Disk Manager also supports these calls
- SeeAlso: AH=EEh
- Index: Disk Manager
- --------v-13FA--DX5945-----------------------
- INT 13 - PC Tools v8+ VSAFE, VWATCH - API
- AH = FAh
- DX = 5945h
- AL = function (00h-07h)
- Return: varies by function
- if not installed:
- CF set
- AH = 01h
- Note: this API is identical to the ones on INT 16/AH=FAh and INT 21/AH=FAh,
- so it is listed in its entirety under INT 16/AX=FA00h and following
- SeeAlso: INT 16/AX=FA00h
- --------v-13FD50------------------------
- INT 13 - VIRUS - "Predator" - INSTALLATION CHECK
- AX = FD50h
- Return: AX = 50FDh if resident
- SeeAlso: AX=5001h"VIRUS",INT 16/AH=DDh"VIRUS"
- --------d-13FE-------------------------------
- INT 13 - SWBIOS - GET EXTENDED CYLINDER COUNT
- AH = FEh
- DL = drive number (80h, 81h)
- Return: CF clear
- DX = number of cylinders beyond 1024 on drive
- Program: SWBIOS is a TSR by Ontrack Computer Systems
- Notes: standard INT 13/AH=08h will return a cylinder count truncated to 1024
- BIOS without this extension would return count modulo 1024
- Disk Manager also supports these calls
- SeeAlso: AH=EEh
- ----------13FF-------------------------------
- INT 13 - Windows95 - ???
- AH = FFh
- DL - drive number (80h)
- Return: ???
- Note: this function is called by the Windows95 Master Boot Record
- --------B-13FF-------------------------------
- INT 13 - IBM SurePath BIOS - Officially "Private" Function
- AH = FFh
- --------U-13FFFFBHAA-------------------------
- INT 13 - UNIQUE UX Turbo Utility - SET TURBO MODE
- AX = FFFFh
- BH = AAh
- BL = subfunction
- 00h installation check
- Return: AX = 1234h if installed
- 01h turn on Turbo mode
- 02h turn off Turbo mode
- 03h set Turbo mode according to hardware switch
- 04h set disk access to Turbo mode
- 05h set disk access to Normal mode
- Return: nothing
- SeeAlso: INT 15/AH=DFh
- Index: installation check;UNIQUE UX Turbo Utility
- --------S-14---------------------------------
- INT 14 - SERIAL - Digiboard DigiCHANNEL PC/X* Extender INT 14 (XAPCM232.SYS)
- Note: the installation check for this driver is to determine whether the
- "~DOSXAM~" character device exists
- Index: installation check;Digiboard DigiCHANNEL
- --------S-1400-------------------------------
- INT 14 - SERIAL - INITIALIZE PORT
- AH = 00h
- AL = port parameters (see #0226)
- DX = port number (00h-03h) (04h-43h for Digiboard XAPCM232.SYS)
- Return: AH = line status (see #0230)
- FFh if error on Digiboard XAPCM232.SYS
- AL = modem status (see #0231)
- Notes: default handler is at F000h:E739h in IBM PC and 100% compatible BIOSes
- since the PCjr supports a maximum of 4800 bps, attempting to set 9600
- bps will result in 4800 bps
- various network and serial-port drivers support the standard BIOS
- functions with interrupt-driven I/O instead of the BIOS's polled I/O
- the 04/08/93 Compaq system ROM uses only the low two bits of DX
- SeeAlso: AH=04h"SERIAL",AH=04h"MultiDOS",AH=05h"SERIAL",AH=57h
- SeeAlso: AX=8000h"ARTICOM",AH=81h"COMM-DRV",AH=82h"COURIERS",AH=8Ch
- SeeAlso: MEM 0040h:0000h,PORT 03F8h"Serial"
-
- Bitfields for serial port parameters:
- Bit(s) Description (Table 0226)
- 7-5 data rate (110,150,300,600,1200,2400,4800,9600 bps)
- 4-3 parity (00 or 10 = none, 01 = odd, 11 = even)
- 2 stop bits (set = 2, clear = 1)
- 1-0 data bits (00 = 5, 01 = 6, 10 = 7, 11 = 8)
- SeeAlso: #0228,#0233,#0234,#0235
- --------S-1400-------------------------------
- INT 14 - FOSSIL (Fido/Opus/Seadog Standard Interface Level) - INITIALIZE
- AH = 00h
- AL = initializing parameters
- 7 - 6 - 5 4 - 3 2 1 - 0
- -BAUD RATE- PARITY STOP WORD
- BITS LENGTH
- 000 19200 bd 00 none 0: 1 00: 5
- 001 38400 bd 01 odd 1: 2 01: 6
- 010 300 bd 11 even 10: 7
- 011 600 bd 11: 8
- 100 1200 bd
- 101 2400 bd
- 110 4800 bd
- 111 9600 bd (4800 on PCjr)
- DX = port number (0-3 or FFh if only performing non-I/O setup)
- Return: AH = RS-232 status code bits (see #0227)
- AL = modem status bits
- bit 3: always 1
- bit 7: DCD - carrier detect
- SeeAlso: #0226,AH=05h"FOSSIL",AH=81h"COMM-DRV",AH=82h"COURIERS"
-
- Bitfields for FOSSIL RS-232 status:
- Bit(s) Description (Table 0227)
- 0 RDA - input data is available in buffer
- 1 OVRN - data has been lost
- 5 THRE - room is available in output buffer
- 6 TSRE - output buffer empty
- --------S-1400-------------------------------
- INT 14 - Tandy 2000 - SERIAL - RESET COMM PORT
- AH = 00h
- AL = RS-232C parameters (see #0228)
- DL = port number
- DH = protocol
- bit 0: use XON/XOFF on received data
- bit 1: use XON/XOFF when transmitting
- Return: AH = line status (see #0230)
- AL = modem status (see #0231)
- Note: this interrupt is identical to INT 53 on the Tandy 2000
- SeeAlso: AH=04h"Tandy 2000",INT 53"Tandy 2000"
- --------S-1400-------------------------------
- INT 14 - MBBIOS - INITIALIZE PORT
- AH = 00h
- AL = port parameters (see #0228)
- DX = port number
- Return: AH = line status (see #0230)
- AL = modem status (see #0231)
- Note: MBBIOS was written by H. Roy Engehausen
- SeeAlso: AH=04h"MBBIOS",AH=05h"MBBIOS",AH=09h"MBBIOS"
-
- Bitfields for MBBIOS port parameters:
- Bit(s) Description (Table 0228)
- 7-5 data rate
- (normally 110,150,300,600,1200,2400,4800,9600 bps;
- 9600,14400,19200,28800,38400,57600,115200,330400 bps
- if the high-speed option is set)
- 4-3 parity (00 or 10 = none, 01 = odd, 11 = even)
- 2 stop bits (set = 2, clear = 1)
- 1-0 data bits (00 = 5, 01 = 6, 10 = 7, 11 = 8)
- SeeAlso: #0226
- --------N-1400--DXFFFF-----------------------
- INT 14 - Connection Manager - MODIFY DEFAULT CONNECTION PARAMETERS
- AH = 00h
- DX = FFFFh
- ES:DI -> vector string specifying new parameters
- Return: AH = return code (00h,03h) (see #0229)
- Program: Connection Manager by Softwarehouse Corp. permits the sharing of
- serial ports over an IPX or NetBIOS-based network
- Note: if DX is 0-3 on entry, Connection Manager emulates the standard BIOS
- function, but redirects the port over the network; if DX is any other
- value, the call is chained
- SeeAlso: AH=04h/DX=FFFFh,AH=08h/DX=FFFFh,AH=0Ah/DX=FFFFh
-
- (Table 0229)
- Values for Connection Manager return code:
- 00h successful
- 01h no such connection
- 02h invalid connection ID
- 03h invalid subvector found
- 04h communication error (check BH)
- 06h insufficient resources, retry later
- FFh no data available
- --------S-1401-------------------------------
- INT 14 - SERIAL - WRITE CHARACTER TO PORT
- AH = 01h
- AL = character to write
- DX = port number (00h-03h) (04h-43h for Digiboard XAPCM232.SYS)
- Return: AH bit 7 clear if successful
- AH bit 7 set on error
- AH bits 6-0 = port status (see #0230)
- Notes: various network and serial-port drivers support the standard BIOS
- functions with interrupt-driven I/O instead of the BIOS's polled I/O
- the 04/08/93 Compaq system ROM uses only the low two bits of DX
- SeeAlso: AH=02h,AH=0Bh"FOSSIL",AX=8000h"ARTICOM",AH=89h,MEM 0040h:007Ch
- --------N-1401--DXFFFF-----------------------
- INT 14 - Connection Manager - SEND CHARACTER
- AH = 01h
- DX = FFFFh
- BH = character to send
- Return: AH = return code (00h-02h,06h) (see #0229)
- Notes: if DX is 0-3 on entry, Connection Manager emulates the standard BIOS
- function, but redirects the port over the network; if DX is any other
- value, the call is chained
- this function is provided primarily for compatibility; AH=06h/DX=FFFFh
- is the preferred function because it provides better performance
- SeeAlso: AH=02h/DX=FFFFh,AH=06h/DX=FFFFh,AH=09h/DX=FFFFh
- --------S-1402-------------------------------
- INT 14 - SERIAL - READ CHARACTER FROM PORT
- AH = 02h
- AL = 00h (ArtiCom)
- DX = port number (00h-03h (04h-43h for Digiboard XAPCM232.SYS))
- Return: AH = line status (see #0230)
- AL = received character if AH bit 7 clear
- Notes: will timeout if DSR is not asserted, even if function 03h returns
- data ready
- various network and serial-port drivers support the standard BIOS
- functions with interrupt-driven I/O instead of the BIOS's polled I/O
- the 04/08/93 Compaq system ROM uses only the low two bits of DX
- SeeAlso: AH=01h,AH=02h"FOSSIL",AH=84h,AH=FCh
- --------S-1402-------------------------------
- INT 14 - FOSSIL - RECEIVE CHARACTER WITH WAIT
- AH = 02h
- DX = port number (0-3)
- Return: AL = character received
- AH = 00h
- SeeAlso: AH=01h,AH=02h"SERIAL"
- --------N-1402--DXFFFF-----------------------
- INT 14 - Connection Manager - RECEIVE CHARACTER
- AH = 02h
- DX = FFFFh
- BH = character to send
- Return: AH = return code (00h-02h,04h,FFh) (see #0229)
- BH = line status (see #0230)
- AL = received character (if any)
- Notes: if DX is 0-3 on entry, Connection Manager emulates the standard BIOS
- function, but redirects the port over the network; if DX is any other
- value, the call is chained
- this function is provided primarily for compatibility; AH=07h/DX=FFFFh
- is the preferred function because it provides better performance
- SeeAlso: AH=02h/DX=FFFFh,AH=03h/DX=FFFFh,AH=06h/DX=FFFFh
- --------S-1403-------------------------------
- INT 14 - SERIAL - GET PORT STATUS
- AH = 03h
- AL = 00h (ArtiCom)
- DX = port number (00h-03h) (04h-43h for Digiboard XAPCM232.SYS)
- Return: AH = line status (see #0230)
- AL = modem status (see #0231)
- AX = 9E00h if disconnected (ArtiCom)
- Note: the 04/08/93 Compaq system ROM uses only the low two bits of DX
- SeeAlso: AH=00h,AH=07h"MultiDOS",AX=8000h"ARTICOM",AH=81h"COURIERS",AX=FD02h
-
- Bitfields for serial line status:
- Bit(s) Description (Table 0230)
- 7 timeout
- 6 transmit shift register empty
- 5 transmit holding register empty
- 4 break detected
- 3 framing error
- 2 parity error
- 1 overrun error
- 0 receive data ready
- Note: for COMM-DRV, if bit 7 is set, an error occurred, and may be retrieved
- through a separate call (see AX=8000h"COMM-DRV")
-
- Bitfields for modem status:
- Bit(s) Description (Table 0231)
- 7 carrier detect
- 6 ring indicator
- 5 data set ready
- 4 clear to send
- 3 delta carrier detect
- 2 trailing edge of ring indicator
- 1 delta data set ready
- 0 delta clear to send
- --------N-1403--DXFFFF-----------------------
- INT 14 - Connection Manager - RETURN COMMUNICATION PORT STATUS
- AH = 03h
- DX = FFFFh
- AL = connection ID
- Return: AH = return code (00h-02h) (see #0229)
- BH = line status (see #0232)
- BL = modem status (see #0231) (only bits 4,5,7; all others zero)
- Notes: if DX is 0-3 on entry, Connection Manager emulates the standard BIOS
- function, but redirects the port over the network; if DX is any other
- value, the call is chained
- SeeAlso: AH=00h/DX=FFFFh,AH=04h/DX=FFFFh,AH=0Ah/DX=FFFFh
-
- Bitfields for Connection Manager line status:
- Bit(s) Description (Table 0232)
- 7 CTS changed
- 6 current CTS state
- 5 timeout
- 4 break
- 3 framing error
- 2 parity error
- 1 overrun
- 0 current carrier state (0 active, 1 no carrier)
- --------S-1404-------------------------------
- INT 14 - SERIAL - EXTENDED INITIALIZE (CONVERTIBLE,PS)
- AH = 04h
- AL = break status
- 00h if break
- 01h if no break
- BH = parity (see #0233)
- BL = number of stop bits
- 00h one stop bit
- 01h two stop bits (1.5 if 5 bit word length)
- CH = word length (see #0234)
- CL = bps rate (see #0235)
- DX = port number
- Return: AX = port status code (see #0230,#0231)
- SeeAlso: AH=00h,AH=1Eh,AX=8000h"ARTICOM"
-
- (Table 0233)
- Values for serial port parity:
- 00h no parity
- 01h odd parity
- 02h even parity
- 03h stick parity odd
- 04h stick parity even
- SeeAlso: #0226,#0234,#0235,#0236
-
- (Table 0234)
- Values for serial port word length:
- 00h 5 bits
- 01h 6 bits
- 02h 7 bits
- 03h 8 bits
- SeeAlso: #0226,#0233,#0235,#0271
-
- (Table 0235)
- Values for serial port bps rate:
- 00h 110 (19200 if ComShare installed)
- 01h 150 (38400 if ComShare installed)
- 02h 300
- 03h 600 (14400 if ComShare installed)
- 04h 1200
- 05h 2400
- 06h 4800 (28800 if ComShare installed)
- 07h 9600
- 08h 19200
- ---ComShare---
- 09h 38400
- 0Ah 57600
- 0Bh 115200
- SeeAlso: #0226,#0233,#0235,#0272,#0279,AH=36h,#0290,#0530,#2609
- --------S-1404-------------------------------
- INT 14 - Tandy 2000 - SERIAL - FLUSH COMM BUFFER
- AH = 04h
- DL = port number
- DH = protocol
- bit 0: use XON/XOFF on received data
- bit 1: use XON/XOFF when transmitting
- Return: nothing
- Desc: clears the serial interface buffer
- Note: this interrupt is identical to INT 53 on the Tandy 2000
- SeeAlso: AH=00h"Tandy 2000",INT 53"Tandy 2000"
- --------S-1404-------------------------------
- INT 14 - FOSSIL - INITIALIZE DRIVER
- AH = 04h
- DX = port number
- optionally BX=4F50h
- ES:CX -> byte to be set upon ^C
- Return: AX = 1954h (if successful)
- BL = maximum function number supported (excluding 7Eh and above)
- BH = revision of FOSSIL specification supported
- DTR is raised
- Note: the word at offset 6 in the interrupt handler contains 1954h, and the
- following byte contains the maximum function number supported; this
- can serve as an installation check
- SeeAlso: AH=05h"FOSSIL",AH=1Ch,INT 11/AH=BCh
- Index: installation check;FOSSIL
- --------S-1404-------------------------------
- INT 14 - MultiDOS Plus IODRV - INITIALIZE PORT
- AH = 04h
- Return: port initialized; if Hayes-compatible modem, a connection has been
- established
- Note: the port number is stored at offset BEh in the Task Control Block
- (see #0382 at INT 15/AH=13h"MultiDOS")
- SeeAlso: AH=00h,AH=05h"MultiDOS",AH=20h"MultiDOS",INT 15/AH=13h"MultiDOS"
- --------S-1404-------------------------------
- INT 14 - Digiboard DigiCHANNEL PC/X* - CHANGE BAUD RATE
- AH = 04h
- AL = initializing parameters (see #0236)
- BX = baud rate
- DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
- Return: AH = status
- 00h successful
- FFh error
- SeeAlso: AH=05h"Digiboard"
-
- Bitfields for Digiboard initializing parameters:
- Bit(s) Description (Table 0236)
- 7-5 unused
- 4-3 parity (00 none, 01 odd, 11 even)
- 2 stop bits (0 = one, 1 = two)
- 1-0 data bits (00 = five, 01 = six, 10 = seven, 11 = eight)
- SeeAlso: #0233,#0234
- --------S-1404-------------------------------
- INT 14 - MBBIOS - INSTALLATION CHECK
- AH = 04h
- DX = port number
- Return: AX = AA55h if installed on specified port
- SeeAlso: AH=00h"MBBIOS",AH=09h"MBBIOS"
- --------N-1404--DXFFFF-----------------------
- INT 14 - Connection Manager - OPEN COMMUNICATION
- AH = 04h
- DX = FFFFh
- ES:DI -> Connection Request protocol vector (see #0237)
- Return: AH = return code
- 00h successful
- AL = connection ID
- BH = connection type
- 00h direct connection or no dialing
- 01h Connection Server dialed phone
- 01h no response from Connection Server
- 03h invalid request
- Program: Connection Manager by Softwarehouse Corp. permits the sharing of
- serial ports over an IPX or NetBIOS-based network
- Desc: initiate a connection to the Connection Server listed in the current
- Client parameter set
- Notes: if DX is 0-3 on entry, Connection Manager emulates the standard BIOS
- function, but redirects the port over the network; if DX is any other
- value, the call is chained
- all subvectors of the Connection Request vector are optional; if
- missing, default values are provided by the default connection
- parameter set
- SeeAlso: AH=00h/DX=FFFFh,AH=05h/DX=FFFFh,AH=06h/DX=FFFFh,AH=07h/DX=FFFFh
- SeeAlso: AH=0Ah/DX=FFFFh,AH=0Ch/DX=FFFFh
-
- Format of Connection Manager protocol command vector:
- Offset Size Description (Table 0237)
- 00h WORD (big-endian) total length of command (including this word)
- 02h WORD (big-endian) command code
- EF01h Connection Request
- EF06h Modify Connection Parameters
- 04h N BYTEs list of subvectors (see #0239)
- allowable subvector types are 01h-04h,17h,18h for command code
- EF01h; 03h,04h for command code EF06h (see #0238)
-
- (Table 0238)
- Values for Connection Manager subvector type code:
- 01h Connection ID
- 02h Destination ID
- 03h Asynchronous line parameters
- 04h Data transfer parameters
- 09h Line speed
- 0Ah Serial coding
- 0Bh Packet size
- 0Ch Timers
- 0Dh Special characters
- 0Eh Target ID
- 0Fh Telephone number
- 10h ASCII destination ID
- 11h Parity
- 12h Bits per character
- 13h Number of stop bits
- 14h Packet timer
- 15h Intercharacter timer
- 17h Flags
- 18h Parameter ranges
- 19h Flow control
-
- Format of Connection Manager subvector:
- Offset Size Description (Table 0239)
- 00h BYTE length of subvector
- 01h BYTE type code (see #0238)
- 02h N-2 BYTEs data, which may include subvectors
- SeeAlso: #0240,#0241,#0242,#0243,#0244,#0245,#0246,#0247,#0248,#0249,#0250
- SeeAlso: #0251,#0252,#0254,#0255,#0256,#0257,#0258,#0259,#0237
-
- Format of Connection ID subvector:
- Offset Size Description (Table 0240)
- 00h BYTE 03h (length)
- 01h BYTE 01h (subvector "Connection ID")
- 02h BYTE connection ID
- SeeAlso: #0239
-
- Format of Destination ID subvector:
- Offset Size Description (Table 0241)
- 00h BYTE length
- 01h BYTE 02h (subvector "Destination ID")
- 02h N BYTEs subvector(s) of type 0Eh, 0Fh, or 10h
- SeeAlso: #0239
-
- Format of Asynchronous line parameters subvector:
- Offset Size Description (Table 0242)
- 00h BYTE length
- 01h BYTE 03h (subvector "Asynchronous line parameters")
- 02h N BYTEs subvector(s) of type 09h, 0Ah, or 19h
- SeeAlso: #0239
-
- Format of Data transfer parameters subvector:
- Offset Size Description (Table 0243)
- 00h BYTE length
- 01h BYTE 04h (subvector "Data transfer parameters")
- 02h N BYTEs subvector(s) of type 0Bh, 0Ch, or 0Dh
- SeeAlso: #0239
-
- Format of Line speed subvector:
- Offset Size Description (Table 0244)
- 00h BYTE 04h (length)
- 01h BYTE 09h (subvector "Line speed")
- 02h WORD bit map, highest set bit selects speed
- bit 0: 2400
- bits 1-7: 1800, 1200, 600, 300, 115200, 150, 110 bps
- bits 8-15: 57600, 38400, 19200, 14400, 9600, 7200, 4800, 3600
- SeeAlso: #0239
-
- Format of Serial coding subvector:
- Offset Size Description (Table 0245)
- 00h BYTE length
- 01h BYTE 0Ah (subvector "Serial coding")
- 02h N BYTEs subvector(s) of type 11h, 12h, or 13h
- SeeAlso: #0239
-
- Format of Packet size subvector:
- Offset Size Description (Table 0246)
- 00h BYTE 04h (length)
- 01h BYTE 0Bh (subvector "Packet size")
- 02h WORD (big-endian) packet size, 1 to 1024
- SeeAlso: #0239
-
- Format of Timers subvector:
- Offset Size Description (Table 0247)
- 00h BYTE length
- 01h BYTE 0Ch (subvector "Timers")
- 02h 8 BYTEs subvector of type 14h or 15h
- SeeAlso: #0239
-
- Format of Special characters subvector:
- Offset Size Description (Table 0248)
- 00h BYTE length
- 01h BYTE 0Dh (subvector "Special characters")
- 02h N BYTEs list of ASCII characters to be used as EOM or EOB
- SeeAlso: #0239
-
- Format of Target ID:
- Offset Size Description (Table 0249)
- 00h BYTE length
- 01h BYTE 0Eh (subvector "Target ID")
- 02h N BYTEs target ID, 1-16 bytes
- SeeAlso: #0239
-
- Format of Telephone number subvector:
- Offset Size Description (Table 0250)
- 00h BYTE length
- 01h BYTE 0Fh (subvector "Telephone number")
- 02h N BYTEs telephone number
- SeeAlso: #0239
-
- Format of ASCII destination ID subvector:
- Offset Size Description (Table 0251)
- 00h BYTE length
- 01h BYTE 10h (subvector "ASCII destination ID")
- 02h N BYTEs destination ID
- SeeAlso: #0239
-
- Format of Parity subvector:
- Offset Size Description (Table 0252)
- 00h BYTE 03h (length)
- 01h BYTE 11h (subvector "Parity")
- 02h BYTE parity type (see #0253)
- SeeAlso: #0239
-
- Bitfields for Connection Manager parity type:
- Bit(s) Description (Table 0253)
- 7 odd
- 6 even
- 5 mark
- 4 space
- 3 none
- SeeAlso: #0252
-
- Format of Bits per character subvector:
- Offset Size Description (Table 0254)
- 00h BYTE 03h (length)
- 01h BYTE 12h (subvector "Bits per character")
- 02h BYTE bits per character
- bit 7: seven
- bit 6: eight
- SeeAlso: #0239
-
- Format of Number of stop bits subvector:
- Offset Size Description (Table 0255)
- 00h BYTE 03h (length)
- 01h BYTE 13h (subvector "Number of stop bits")
- 02h BYTE stop bits
- bit 7: one
- bit 6: 1.5
- bit 5: two
- SeeAlso: #0239
-
- Format of Packet timer and Intercharacter timer subvectors:
- Offset Size Description (Table 0256)
- 00h BYTE 04h (length)
- 01h BYTE subvector type
- 14h Packet timer
- 15h Intercharacter timer
- 02h WORD (big-endian) unit of value representing 20ms
- SeeAlso: #0239
-
- Format of Flags subvector:
- Offset Size Description (Table 0257)
- 00h BYTE 03h (length)
- 01h BYTE 17h (subvector "Flags")
- 02h BYTE flags
- bit 7: queueing requested
- SeeAlso: #0239
-
- Format of Parameter ranges subvector:
- Offset Size Description (Table 0258)
- 00h BYTE length
- 01h BYTE 18h (subvector "Parameter ranges")
- 02h N BYTEs subvector(s) of type 09h, 11h, 12h, or 13h
- SeeAlso: #0239
-
- Format of Flow control subvector:
- Offset Size Description (Table 0259)
- 00h BYTE length (02h-04h)
- 01h BYTE 19h (subvector "Flow control")
- 02h BYTE XOFF character
- 03h BYTE XON character
- Note: if length is 02h, flow control is disabled; if length is 03h, any
- character will be accepted as XON after an XOFF
- SeeAlso: #0239
- --------S-140400-----------------------------
- INT 14 - Microsoft Systems Journal TSRCOMM INT14 - INSTALLATION CHECK
- AX = 0400h
- Return: AX = 0FF0h
- SeeAlso: AX=0401h,AX=0408h
- --------S-140401-----------------------------
- INT 14 - Microsoft Systems Journal TSRCOMM INT14 - INITIALIZE MODE
- AX = 0401h
- CX = mode
- Return: nothing
- SeeAlso: AX=0400h,AX=0402h
- --------S-140402-----------------------------
- INT 14 - Microsoft Systems Journal TSRCOMM INT14 - EXTENDED INITIALIZE
- AX = 0402h
- CL = parameters
- Return: nothing
- SeeAlso: AX=0400h,AX=0401h
- --------S-140403-----------------------------
- INT 14 - Microsoft Systems Journal TSRCOMM INT14 - SET TIMEOUT
- AX = 0403h
- CX = timeout
- Return: nothing
- SeeAlso: AX=0400h
- --------S-140404-----------------------------
- INT 14 - Microsoft Systems Journal TSRCOMM INT14 - CLEAR THE RECEIVE BUFFER
- AX = 0404h
- Return: nothing
- SeeAlso: AX=0400h,AX=0405h,AX=0406h
- --------S-140405-----------------------------
- INT 14 - Microsoft Systems Journal TSRCOMM INT14 - GET RECEIVE BUFFER COUNT
- AX = 0405h
- Return: AX = number of characters in buffer
- SeeAlso: AX=0400h,AX=0404h,AX=0407h
- --------S-140406-----------------------------
- INT 14 - Microsoft Systems Journal TSRCOMM INT14 - CLEAR THE TRANSMIT BUFFER
- AX = 0406h
- Return: nothing
- SeeAlso: AX=0400h,AX=0404h,AX=0407h
- --------S-140407-----------------------------
- INT 14 - Microsoft Systems Journal TSRCOMM INT14 - GET TRANSMIT BUFFER COUNT
- AX = 0407h
- Return: AX = number of characters in the buffer
- SeeAlso: AX=0400h,AX=0405h,AX=0406h
- --------S-140408-----------------------------
- INT 14 - Microsoft Systems Journal TSRCOMM INT14 - UNINSTALL
- AX = 0408h
- Return: nothing
- SeeAlso: AX=0400h
- --------S-1405-------------------------------
- INT 14 - SERIAL - EXTENDED COMMUNICATION PORT CONTROL (CONVERTIBLE,PS)
- AH = 05h
- AL = function
- 00h read modem control register
- Return: BL = modem control register (see #0260)
- AH = status
- 01h write modem control register
- BL = modem control register (see #0260)
- Return: AX = status
- DX = port number
- Note: also supported by ArtiCom
- SeeAlso: AH=00h,AH=1Fh,AX=8000h"ARTICOM",AH=FBh
-
- Bitfields for modem control register:
- Bit(s) Description (Table 0260)
- 0 data terminal ready
- 1 request to send
- 2 OUT1
- 3 OUT2
- 4 LOOP
- 5-7 reserved
- --------S-1405-------------------------------
- INT 14 - FOSSIL - DEINITIALIZE DRIVER
- AH = 05h
- DX = port number
- Return: none
- DTR is not affected
- SeeAlso: AH=00h,AH=04h"FOSSIL",AH=1Dh,AH=8Dh
- --------S-1405-------------------------------
- INT 14 - MultiDOS Plus IODRV - READ CHARACTER FROM PORT
- AH = 05h
- AL = timeout in seconds (00h = never)
- Return: AL = status
- 00h successful
- AH = character read
- 01h read error
- 02h timed out
- other modem status (CTS, DSR) changed
- Note: the port number is stored at offset BEh in the Task Control Block
- SeeAlso: AH=02h,AH=04h"MultiDOS",AH=06h"MultiDOS",AH=22h"MultiDOS"
- SeeAlso: INT 15/AH=13h"MultiDOS"
- --------S-1405-------------------------------
- INT 14 - Digiboard DigiCHANNEL PC/X* - CHANGE PROTOCOL
- AH = 05h
- AL = protocol (see #0261)
- BH = new XOFF character (00h = current)
- BL = new XON character (00h = current)
- DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
- Return: AH = status
- 00h successful
- FFh error
- SeeAlso: AH=04h"Digiboard"
-
- Bitfields for Digiboard protocol:
- Bit(s) Description (Table 0261)
- 7-4 unused
- 3 RTS/CTS
- 2 DSR
- 1,0 XON/XOFF
- --------S-1405-------------------------------
- INT 14 - MBBIOS - DROP DTR AND RTS
- AH = 05h
- DX = port number
- Return: none
- SeeAlso: AH=00h"MBBIOS",AH=06h"MBBIOS",AH=06h"FOSSIL"
- --------S-1405-------------------------------
- INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - CHANGE PORT PROTOCOL
- AH = 05h
- AL = new port protocol (see #0262)
- BH = new XOFF character
- BL = new XON character
- DX = port number
- Return: AH = FFh if invalid protocol
- SeeAlso: AH=00h,AH=04h"SERIAL",AH=06h"PC-MOS"
-
- Bitfields for PC-MOS/386 serial port protocol:
- Bit(s) Description (Table 0262)
- 7 set to enable/disable CD monitoring, clear to set protocol
- ---bit 7 set---
- 4 CD monitoring enabled
- 5 automatic restart enabled
- ---bit 7 clear---
- 0 receive XON/XOFF
- 1 transmit XON/XOFF
- 2 DTR/DSR
- 3 RTS/CTS
- --------N-1405--DXFFFF-----------------------
- INT 14 - Connection Manager - CLOSE COMMUNICATION
- AH = 05h
- DX = FFFFh
- AL = connection ID
- Return: AH = return code
- 00h successful
- 01h no such connection
- 02h invalid connection ID
- AL = correct connection ID
- Desc: terminate existing connection to allow another one to be established
- Note: if DX is 0-3 on entry, Connection Manager emulates the standard BIOS
- function, but redirects the port over the network; if DX is any other
- value, the call is chained
- SeeAlso: AH=04h/DX=FFFFh,AH=0Dh/DX=FFFFh
- --------S-1406-------------------------------
- INT 14 - FOSSIL - RAISE/LOWER DTR
- AH = 06h
- DX = port
- AL = DTR state to be set
- 00h = lower
- 01h = raise
- Return: nothing
- SeeAlso: AH=05h"MBBIOS",AH=1Ah
- --------S-1406-------------------------------
- INT 14 - MultiDOS Plus IODRV - WRITE CHARACTER TO PORT
- AH = 06h
- AL = character
- Return: AL = status
- 00h successful
- Notes: the port number is stored at offset BEh in the Task Control Block
- if output queue is full, the calling task is blocked until the
- character can be stored
- SeeAlso: AH=01h,AH=04h"MultiDOS",AH=05h"MultiDOS",AH=21h"MultiDOS"
- SeeAlso: INT 15/AH=13h"MultiDOS"
- --------S-1406-------------------------------
- INT 14 - MBBIOS - RAISE DTR AND RTS
- AH = 06h
- DX = port number
- Return: none
- SeeAlso: AH=05h"MBBIOS",AH=07h"MBBIOS"
- --------S-1406-------------------------------
- INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - DRIVER 'ID' FUNCTION
- AH = 06h
- DX = port number
- Return: AH bit 7 set
- AL = number of highest function supported by driver
- Program: PC-MOS/386 v5.01 is a multitasking, multiuser MS-DOS 5.0-compatible
- operating system by The Software Link, Inc.
- SeeAlso: AH=18h"PC-MOS"
- --------N-1406-------------------------------
- INT 14 - TelAPI - WRITE BLOCK
- AH = 06h
- CX = number of characters to write
- DX = port number
- ES:DI -> buffer containing data
- Return: AX = number of characters actually sent (negative on error)
- CX = ???
- SeeAlso: AH=07h"TelAPI",AH=E0h"TelAPI",AH=E3h"TelAPI"
- --------N-1406--DXFFFF-----------------------
- INT 14 - Connection Manager - SEND CHARACTER BLOCK
- AH = 06h
- DX = FFFFh
- AL = connection ID
- CX = number of characters to send
- ES:DI -> buffer containing data to be sent
- Return: AH = return code (see #0229)
- Program: Connection Manager by Softwarehouse Corp. permits the sharing of
- serial ports over an IPX or NetBIOS-based network
- SeeAlso: AH=04h/DX=FFFFh,AH=07h/DX=FFFFh,AH=09h/DX=FFFFh
- --------S-1407-------------------------------
- INT 14 - FOSSIL - RETURN TIMER TICK PARAMETERS
- AH = 07h
- Return: AL = timer tick interrupt number
- AH = ticks per second on interrupt number in AL
- DX = approximate number of milliseconds per tick
- SeeAlso: AH=16h
- --------S-1407-------------------------------
- INT 14 - MultiDOS Plus IODRV - GET PORT STATUS
- AH = 07h
- Return: CL = modem status (see #0231)
- CH = character at head of input queue (if any)
- DX = number of characters in input queue
- Note: the port number is stored at offset BEh in the Task Control Block
- SeeAlso: AH=03h,AH=05h"MultiDOS",AH=08h"MultiDOS",AH=09h"MultiDOS"
- SeeAlso: AH=23h"MultiDOS",INT 15/AH=13h"MultiDOS"
- --------S-1407-------------------------------
- INT 14 - MBBIOS - SEND BREAK
- AH = 07h
- DX = port number
- Return: none
- SeeAlso: AH=06h"MBBIOS",AH=FAh"EBIOS"
- --------S-1407-------------------------------
- INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - SEND RS-232 BREAK
- AH = 07h
- BX = duration of break in clock ticks
- DX = port number
- Return: nothing
- --------N-1407-------------------------------
- INT 14 - TelAPI - READ BLOCK
- AH = 07h
- CX = length of buffer in bytes
- DX = port number
- ES:DI -> buffer for data
- Return: AX > 0000h number of characters actually read
- AX = 0000h host has closed connection
- AX < 0000h error code (see #0323)
- CX = ???
- Note: translates CRLF into local EOL if the connection is in ASCII mode,
- negotiates various Telnet options, and immediately executes several
- different Telnet action commands
- SeeAlso: AH=06h"TelAPI",AH=E0h"TelAPI",AH=E2h"TelAPI"
- --------N-1407--DXFFFF-----------------------
- INT 14 - Connection Manager - RECEIVE CHARACTER BLOCK
- AH = 07h
- DX = FFFFh
- AL = connection ID
- BL = flag
- 00h wait for data
- nonzero do not wait if no data avaiable
- CX = size of receive buffer
- ES:DI -> buffer for received characters
- Return: AH = return code (00h-02h,04h,FFh) (see #0229)
- BH = line status (see #0232)
- CX = number of characters received
- Program: Connection Manager by Softwarehouse Corp. permits the sharing of
- serial ports over an IPX or NetBIOS-based network
- SeeAlso: AH=01h/DX=FFFFh,AH=04h/DX=FFFFh,AH=06h/DX=FFFFh
- --------S-1408-------------------------------
- INT 14 - FOSSIL - FLUSH OUTPUT BUFFER WAITING TILL ALL OUTPUT IS DONE
- AH = 08h
- DX = port number
- Return: nothing
- SeeAlso: AH=09h"FOSSIL"
- --------S-1408-------------------------------
- INT 14 - MultiDOS Plus 4.0 IODRV - GET AND RESET PORT LINE STATUS
- AH = 08h
- Return: AL = line status (see #0230)
- AH destroyed
- Notes: the port number is stored at offset BEh in the Task Control Block
- on every line status change, the line status is ORed with the line
- status accumulator; this function returns the accumulator and clears
- it
- SeeAlso: AH=03h,AH=04h"MultiDOS",AH=07h"MultiDOS",INT 15/AH=13h"MultiDOS"
- --------S-1408-------------------------------
- INT 14 - Digiboard DigiCHANNEL PC/X* - ALTERNATE STATUS CHECK
- AH = 08h
- DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
- Return: AH = RS232 status bits (see #0230 at AH=03h)
- ZF set if no characters queued
- ZF clear if character available
- AL = next character
- SeeAlso: AH=03h,AH=08h"PC-MOS",AH=09h"Digiboard",AH=14h"Digiboard"
- --------S-1408-------------------------------
- INT 14 - MBBIOS - NON-DESTRUCTIVE READ
- AH = 08h
- DX = port number
- Return: AL = character (if AH bit 0 set)
- AH = status (see #0230)
- SeeAlso: AH=0Bh"MBBIOS",AH=0Ch"FOSSIL"
- --------S-1408-------------------------------
- INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - INPUT STATUS CHECK
- AH = 08h
- DX = port number
- Return: CF set if carrier loss detected
- ZF set if input buffer empty
- ZF clear if characters available
- AL = next character dequeued
- --------N-1408--DXFFFF-----------------------
- INT 14 - Connection Manager - RETURN DEFAULT CONNECTION PARAMETERS
- AH = 08h
- DX = FFFFh
- CX = size of buffer for parameters or 0000h to get length
- ES:DI -> buffer for parameter vector (see #0237)
- Return: AH = return code
- 00h successful
- CX = number of bytes required (if CX=0000h on entry)
- CX = number of bytes omitted for lack of space (if CX nonzero)
- nonzero invalid request
- Program: Connection Manager by Softwarehouse Corp. permits the sharing of
- serial ports over an IPX or NetBIOS-based network
- SeeAlso: AH=00h/DX=FFFFh,AH=0Fh/DX=FFFFh
- --------S-1409-------------------------------
- INT 14 - FOSSIL - PURGE OUTPUT BUFFER THROWING AWAY ALL PENDING OUTPUT
- AH = 09h
- DX = port number
- Return: nothing
- SeeAlso: AH=08h"FOSSIL",AH=0Ah"FOSSIL",AH=88h
- --------S-1409-------------------------------
- INT 14 - MultiDOS Plus IODRV - RESET PORT STATUS
- AH = 09h
- Return: modem status byte cleared
- Note: the port number is stored at offset BEh in the Task Control Block
- SeeAlso: AH=04h"MultiDOS",AH=07h"MultiDOS",INT 15/AH=13h"MultiDOS"
- --------S-1409-------------------------------
- INT 14 - Digiboard DigiCHANNEL PC/X* - CLEAR BUFFERS
- AH = 09h
- DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
- Return: AH = status
- 00h successful
- FFh error
- SeeAlso: AH=08h"Digiboard",AH=0Ah"Digiboard",AH=10h"Digiboard"
- --------S-1409-------------------------------
- INT 14 - MBBIOS - GET/SET OPTIONS
- AH = 09h
- AL = option byte (see #0263)
- DX = port number???
- Return: AL = old option byte
- SeeAlso: AH=00h"MBBIOS",AH=04h"MBBIOS",AH=10h"FOSSIL"
-
- Bitfields for MBBIOS option byte:
- Bit(s) Description (Table 0263)
- 0 transmit buffering enabled
- 2 hardware handshaking enabled
- 5 high-speed option enabled (see AH=00h"MBBIOS",#0228)
- other reserved
- --------S-1409-------------------------------
- INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - RESET I/O BUFFER POINTERS
- AH = 09h
- DX = port number
- Return: nothing
- SeeAlso: AH=13h"PC-MOS"
- --------N-1409--DXFFFF-----------------------
- INT 14 - Connection Manager - SEND BREAK
- AH = 09h
- DX = FFFFh
- AL = connection ID
- Return: AH = return code (00h-02h) (see #0229 at AH=00h/DX=FFFFh)
- Program: Connection Manager by Softwarehouse Corp. permits the sharing of
- serial ports over an IPX or NetBIOS-based network
- SeeAlso: AH=02h/DX=FFFFh,AH=03h/DX=FFFFh
- --------S-140A-------------------------------
- INT 14 - FOSSIL - PURGE INPUT BUFFER THROWING AWAY ALL PENDING INPUT
- AH = 0Ah
- DX = port number
- Return: nothing
- SeeAlso: AH=09h"FOSSIL",AH=85h
- --------S-140A-------------------------------
- INT 14 - Digiboard DigiCHANNEL PC/X* - INPUT QUEUE CHECK
- AH = 0Ah
- DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
- Return: AX = number of characters available in buffer
- Note: this function is also supported by the PC-MOS/386 v5.01 $serial.sys
- SeeAlso: AH=09h"Digiboard",AH=0Dh"Digiboard"
- --------S-140A-------------------------------
- INT 14 - MBBIOS - WRITE BUFFER
- AH = 0Ah
- CX = count
- ES:DI -> buffer (see #0264)
- Return: AX = status (see #0230,#0231)
- CX = unsent character count
- DI updated
- Note: the PACCOM version of MBBIOS does not use CX or ES:DI; instead, ES
- contains the segment of a buffer containing the packet to be sent,
- which by default will be freed once the packet has been sent. Use
- AH=0Ch"MBBIOS" to allocate the buffer.
- SeeAlso: AH=01h,AH=0Bh"MBBIOS",AH=0Ch"MBBIOS",AH=19h"FOSSIL"
-
- Format of MBBIOS PACCOM buffer:
- Offset Size Description (Table 0264)
- 00h 504 BYTEs data area
- 1F8h WORD length of data in data area
- 1FAh BYTE flags/status
- bit 7: don't discard buffer after transmitting data
- bit 6: buffer has been transmitted
- 1FBh BYTE reserved (0) for additional flags/status
- 1FCh WORD user data
- 1FEh WORD MBBIOS-internal pointer to next buffer
- --------N-140A--DXFFFF-----------------------
- INT 14 - Connection Manager - MODIFY ACTIVE CONNECTION PARAMETERS
- AH = 0Ah
- DX = FFFFh
- ES:DI -> vector string containing new parameters (see #0237)
- Return: AH = return code (00h-03h,06h) (see #0229)
- Program: Connection Manager by Softwarehouse Corp. permits the sharing of
- serial ports over an IPX or NetBIOS-based network
- Note: any subvectors valid for the Change Parameters command replace the
- existing values in the current set
- SeeAlso: AH=00h/DX=FFFFh,AH=0Fh/DX=FFFFh
- --------S-140B-------------------------------
- INT 14 - FOSSIL - TRANSMIT NO WAIT
- AH = 0Bh
- AL = character
- DX = port number
- Return: AX = result
- 0000h character not accepted
- 0001h character accepted
- SeeAlso: AH=01h
- --------S-140B-------------------------------
- INT 14 - MBBIOS - READ BUFFER
- AH = 0Bh
- CX = size of buffer
- ES:DI -> buffer
- Return: AH = composite line status (see #0230) formed by ORing all statuses
- on receive interrupts; bit 0 set if additional characters
- available
- AL = composite modem status (see #0231) formed by ORing all statuses
- CX = number of characters actually read
- DI updated
- Note: the PACCOM version of MBBIOS does not use CX or ES:DI on call,
- instead returning ES set to the segment of the buffer containing a
- received packet, or 0000h if no packets available; the buffer may
- be freed with AH=0Ch"MBBIOS"
- SeeAlso: AH=02h,AH=08h"MBBIOS",AH=0Ah"MBBIOS",AH=0Ch"MBBIOS",AH=18h"FOSSIL"
- --------N-140B--DXFFFF-----------------------
- INT 14 - Connection Manager - PREPARE FOR INBOUND CONNECTION
- AH = 0Bh
- DX = FFFFh
- AL = service name
- 00h use parameter file or default
- 01h use specified name
- ES:DI -> 16-byte blank-padded name
- BH = connection notification
- 00h program awaiting connection, don't notify user
- 01h notify user on connecting
- BL = connection type
- 00h connection will use Connection Manager API
- Return: AH = return code (00h-02h) (see #0229 at AH=00h/DX=FFFFh)
- AL = connection ID if AH=00h
- Program: Connection Manager by Softwarehouse Corp. permits the sharing of
- serial ports over an IPX or NetBIOS-based network
- SeeAlso: AH=04h/DX=FFFFh,AH=0Ch/DX=FFFFh,AH=10h/DX=FFFFh
- --------S-140C-------------------------------
- INT 14 - FOSSIL - NON-DESTRUCTIVE READ AHEAD
- AH = 0Ch
- DX = port number
- Return: AX = FFFFh character not available
- AX = 00xxh character xx available
- SeeAlso: AH=08h"MBBIOS",AH=20h"FOSSIL"
- --------S-140C-------------------------------
- INT 14 - MBBIOS PACCOM support - BUFFER MANAGEMENT
- AH = 0Ch
- ES = segment of buffer to free, or 0000h to allocate new buffer
- Return: ES = segment of allocated buffer (if ES=0000h on entry)
- Note: the PACCOM version of MBBIOS uses only ES as buffer address for
- AH=0Ah and AH=0Bh
- SeeAlso: AH=0Ah"MBBIOS",AH=0Bh"MBBIOS"
- --------N-140C--DXFFFF-----------------------
- INT 14 - Connection Manager - TEST FOR INBOUND CONNECTION REQUEST
- AH = 0Ch
- DX = FFFFh
- AL = connection ID from AH=0Bh/DX=FFFFh
- Return: AH = return code (00h-03h) (see also #0229 at AH=00h/DX=FFFFh)
- 03h not prepared for inbound connection
- AL = connection ID (if AH=00h) or correct connection ID (if AH=02h)
- Program: Connection Manager by Softwarehouse Corp. permits the sharing of
- serial ports over an IPX or NetBIOS-based network
- SeeAlso: AH=03h/DX=FFFFh,AH=04h/DX=FFFFh,AH=0Bh/DX=FFFFh
- --------S-140D-------------------------------
- INT 14 - FOSSIL - KEYBOARD READ WITHOUT WAIT
- AH = 0Dh
- Return: AX = result
- FFFFh character not available
- xxyyh standard IBM-style scan code
- SeeAlso: AH=0Eh
- --------S-140D-------------------------------
- INT 14 - Digiboard DigiCHANNEL PC/X* - GET POINTER TO CH_KEY_RDY FLAG
- AH = 0Dh
- DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
- Return: ES:BX -> CH_KEY_RDY flag (see #0265)
- SeeAlso: AH=0Ah"Digiboard"
-
- (Table 0265)
- Values for Digiboard CH_KEY_RDY flag:
- 00h receive buffer empty
- FFh characters available
- --------S-140D-------------------------------
- INT 14 - MBBIOS PACCOM support - SET TXD
- AH = 0Dh
- AL = new setting (FFh = 1.0)
- Return: nothing
- Desc: specify the time from RTS to start or packet
- SeeAlso: AX=0D00h,AH=0Eh"MBBIOS",AH=0Fh"MBBIOS"
- --------N-140D--DXFFFF-----------------------
- INT 14 - Connection Manager - TERMINATE CONNECTION CLIENT ACTIVITY
- AH = 0Dh
- DX = FFFFh
- Return: AH = return code
- 00h successful
- nonzero operation not terminated
- Program: Connection Manager by Softwarehouse Corp. permits the sharing of
- serial ports over an IPX or NetBIOS-based network
- Desc: end all Connection Client TSR activity to allow it to be removed from
- memory
- SeeAlso: AH=05h/DX=FFFFh,AH=6Fh/BX=FFFFh
- --------S-140D00-----------------------------
- INT 14 - MBBIOS - GET AVAILABLE BYTES
- AX = 0D00h
- Return: AX = bytes in transmit buffer
- CX = bytes in receive buffer
- SeeAlso: AH=0Ah"MBBIOS",AH=0Bh"MBBIOS"
- --------S-140D01-----------------------------
- INT 14 - MBBIOS - LOWER ALL MODEM CONTROL SIGNALS
- AX = 0D01h
- Return: nothing
- Note: this function lowers DTR, RTS, etc.
- SeeAlso: AX=0D02h
- --------S-140D02-----------------------------
- INT 14 - MBBIOS - RAISE ALL MODEM CONTROL SIGNALS
- AX = 0D02h
- Return: nothing
- Note: this function raises DTR, RTS, etc.
- SeeAlso: AX=0D01h
- --------S-140D03-----------------------------
- INT 14 - MBBIOS - SET HANDSHAKE BYTE
- AX = 0D03h
- CL = new handshake byte
- Return: CL = previous handshake byte
- Note: this function lowers DTR, RTS, etc.
- --------S-140E-------------------------------
- INT 14 - FOSSIL - KEYBOARD READ WITH WAIT
- AH = 0Eh
- Return: AX = xxyyh standard IBM-style scan code
- SeeAlso: AH=0Dh"FOSSIL"
- --------S-140E-------------------------------
- INT 14 - Digiboard DigiCHANNEL PC/X* - WRITE STRING
- AH = 0Eh
- CX = number of characters to write
- ES:BX -> string
- DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
- Return: AX = number of characters actually written
- ZF clear if successful
- ZF set on error
- SeeAlso: AH=0Fh"Digiboard"
- --------S-140E-------------------------------
- INT 14 - MBBIOS PACCOM support - SET PERSISTENCE
- AH = 0Eh
- AL = new setting (FFh = 1.0)
- Return: nothing
- Desc: specify the time from end of DCD to RTS
- SeeAlso: AH=0Dh"MBBIOS",AH=0Fh"MBBIOS"
- --------N-140E--DXFFFF-----------------------
- INT 14 - Connection Manager - SET HARDWARE FLOW STATE
- AH = 0Eh
- DX = FFFFh
- AL = connection ID from AH=04h/DX=FFFFh
- BL = RTS state (00h off, 01h on)
- Return: AH = return code (00h-03h) (see also #0229 at AH=00h/DX=FFFFh)
- 03h invalid request (BL not 00h or 01h)
- Program: Connection Manager by Softwarehouse Corp. permits the sharing of
- serial ports over an IPX or NetBIOS-based network
- SeeAlso: AH=03h/DX=FFFFh,AH=0Ah/DX=FFFFh
- --------S-140F-------------------------------
- INT 14 - FOSSIL - ENABLE/DISABLE FLOW CONTROL
- AH = 0Fh
- AL = bit mask describing requested flow control (see #0266)
- DX = port number
- Return: nothing
- SeeAlso: AH=09h"MBBIOS",AH=10h"FOSSIL"
-
- Bitfields for FOSSIL requested flow control:
- Bit(s) Description (Table 0266)
- 0 XON/XOFF on transmit (watch for XOFF while sending)
- 1 CTS/RTS (CTS on transmit/RTS on receive)
- 2 reserved
- 3 XON/XOFF on receive (send XOFF when buffer near full)
- 4-7 all 1
- --------S-140F-------------------------------
- INT 14 - Digiboard DigiCHANNEL PC/X* - READ STRING
- AH = 0Fh
- CX = number of characters to read
- ES:BX -> buffer
- DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
- Return: AX = number of characters read
- ZF clear if successful
- ZF set on error (line status or wrong number of characters)
- SeeAlso: AH=0Eh"Digiboard"
- --------S-140F-------------------------------
- INT 14 - MBBIOS PACCOM support - SET SLOT TIME
- AH = 0Fh
- AL = new setting in clock ticks
- Return: nothing
- Desc: specify the time from end of DCD to RTS
- SeeAlso: AH=0Dh"MBBIOS",AH=0Eh"MBBIOS",AH=10h"MBBIOS"
- --------N-140F--DXFFFF-----------------------
- INT 14 - Connection Manager - RETURN ACTIVE CONNECTION PARAMETERS
- AH = 0Fh
- DX = FFFFh
- AL = connection ID
- CX = size of buffer or 0000h to get length of returned vector
- ES:DI -> buffer for connection parameter vector (see #0237)
- Return: AH = return code (00h-02h,06h) (see #0229 at AH=00h/DX=FFFFh)
- CX = number of bytes which could not be returned because the given
- buffer was too small
- Program: Connection Manager by Softwarehouse Corp. permits the sharing of
- serial ports over an IPX or NetBIOS-based network
- SeeAlso: AH=08h/DX=FFFFh,AH=0Ah/DX=FFFFh
- --------S-1410-------------------------------
- INT 14 - FOSSIL - EXTENDED ^C/^K CHECKING AND TRANSMIT ON/OFF
- AH = 10h
- AL = bit mask
- bit 0: enable/disable ^C/^K checking
- bit 1: enable/disable the transmitter
- DX = port number
- Return: nothing
- SeeAlso: AH=0Fh"FOSSIL"
- --------S-1410-------------------------------
- INT 14 - Digiboard DigiCHANNEL PC/X* - CLEAR RECEIVE BUFFER
- AH = 10h
- DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
- Return: AH = status
- 00h successful
- FFh error
- SeeAlso: AH=09h"Digiboard",AH=11h"Digiboard"
- --------S-1410-------------------------------
- INT 14 - MBBIOS PACCOM support - SET CRC WAIT
- AH = 10h
- AL = new setting in clock ticks (should be at least 5 character times)
- Return: nothing
- Desc: specify the time from start of last character to dropping RTS
- SeeAlso: AH=0Dh"MBBIOS",AH=0Fh"MBBIOS"
- --------N-1410--DXFFFF-----------------------
- INT 14 - Connection Manager - QUERY SERVICE NAMES
- AH = 10h
- DX = FFFFh
- CL = subfunction
- 00h search first
- 01h search next
- ES:DI -> pattern buffer (see #0267)
- Return: AH = return code (00h,01h,03h,06h) (see also #0229 at AH=00h/DX=FFFFh)
- 01h no (more) matching names
- 03h invalid request
- ES:DI buffer filled with reply buffer (see #0267) containing matched
- name if AH=00h
- Program: Connection Manager by Softwarehouse Corp. permits the sharing of
- serial ports over an IPX or NetBIOS-based network
- Desc: obtain the names of groups and lines available for connection requests,
- and the names of active Connection Servers
- SeeAlso: AH=04h/DX=FFFFh,AH=0Bh/DX=FFFFh
-
- Format of Connection Manager pattern/reply buffer:
- Offset Size Description (Table 0267)
- 00h WORD length of pattern (30h or 32h)
- 02h 16 BYTEs server pattern or name
- 12h 16 BYTEs group pattern or name
- 22h 16 BYTEs line pattern or name
- 23h BYTE (optional) ???
- 24h BYTE (optional, returned) current line status
- 00h available
- 01h out of service
- 02h currently allocated to a connection
- Note: pattern may include '?' wildcard to match any character
- --------S-1411-------------------------------
- INT 14 - FOSSIL - SET CURRENT CURSOR LOCATION
- AH = 11h
- DH = row
- DL = column
- Return: nothing
- Note: this is the same as INT 10/AH=02h
- SeeAlso: AH=12h"FOSSIL"
- --------S-1411-------------------------------
- INT 14 - Digiboard DigiCHANNEL PC/X* - CLEAR TRANSMIT BUFFER
- AH = 11h
- DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
- Return: AH = status
- 00h successful
- FFh error
- SeeAlso: AH=09h"Digiboard",AH=10h"Digiboard"
- --------S-1411-------------------------------
- INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - DISABLE PORT
- AH = 11h
- DX = port number
- Return: AL = status
- 00h successful
- 01h IRQ for port is shared
- 02h IRQ was reserved
- SeeAlso: AH=04h"SERIAL",AH=05h"SERIAL",AH=12h"PC-MOS"
- --------S-1412-------------------------------
- INT 14 - FOSSIL - READ CURRENT CURSOR LOCATION
- AH = 12h
- Return: DH = row
- DL = column
- Note: this is the same as INT 10/AH=03h
- SeeAlso: AH=11h"FOSSIL"
- --------S-1412-------------------------------
- INT 14 - Digiboard DigiCHANNEL PC/X* - GET TRANSMIT BUFFER FREE SPACE
- AH = 12h
- DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
- Return: AX = number of bytes free
- SeeAlso: AH=0Ah"Digiboard",AH=14h"Digiboard"
- --------S-1412-------------------------------
- INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - GET CURRENT PORT PARAMETERS
- AH = 12h
- DX = port number
- Return: AH = status
- FFh port number invalid
- AL = line parameters (see #0230)
- AH = flow control configuration (see #0262 at AH=05h"PC-MOS")
- CX:BX = bps rate
- DL = XOFF character or 00h for none
- DH = XON character or 00h for none
- --------S-1413-------------------------------
- INT 14 - FOSSIL - SINGLE CHARACTER ANSI WRITE TO SCREEN
- AH = 13h
- AL = character
- Return: nothing
- Note: should not be called if it is unsafe to call DOS
- SeeAlso: AH=15h
- --------S-1413-------------------------------
- INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - REGISTER A PORT WITH A TERMINAL
- AH = 13h
- DX = port number
- Return: AH = status
- FFh port number invalid
- else
- ES:BX -> BYTE flag (00h buffer empty, FFh buffer contains data)
- SeeAlso: AH=17h"PC-MOS"
- --------S-1414-------------------------------
- INT 14 - FOSSIL - ENABLE OR DISABLE WATCHDOG PROCESSING
- AH = 14h
- AL = 01h enable watchdog
- 00h disable watchdog
- DX = port number
- Return: nothing
- SeeAlso: INT 21/AH=2Bh/CX=6269h"WDTSR"
- --------S-1414-------------------------------
- INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - OUTPUT STRING
- AH = 14h
- CX = number of characters in string
- DX = port number
- ES:BX -> string to be sent
- SI = timeout in timer ticks or 0000h for default
- Return: AX = number of bytes actually sent
- ZF clear if successful
- ZF set on timeout
- SeeAlso: AH=01h,AH=15h"PC-MOS"
- --------S-1414-------------------------------
- INT 14 - Digiboard - GET NUMBER OF BOARDS INSTALLED
- AH = 14h
- Return: AX = number of boards installed
- SeeAlso: AH=08h"Digiboard",AH=15h"Digiboard"
- --------S-1415-------------------------------
- INT 14 - FOSSIL - WRITE CHARACTER TO SCREEN USING BIOS SUPPORT ROUTINES
- AH = 15h
- AL = character
- Return: nothing
- SeeAlso: AH=13h"FOSSIL"
- --------S-1415-------------------------------
- INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - INPUT STRING
- AH = 15h
- CX = size of buffer
- DX = port number
- ES:BX -> buffer for received characters
- SI = timeout in clock ticks or 0000h for default
- Return: AX = number of characters actually read
- ZF set on timeout (no data available)
- SeeAlso: AH=02h,AH=14h"PC-MOS",AH=16h"PC-MOS"
- --------S-1415-------------------------------
- INT 14 - Digiboard - ENABLE/DISABLE MEMORY
- AH = 15h
- AL = new state (00h disabled, 01h enabled)
- Return: AH = status
- 00h successful
- 80h error
- FFh error
- SeeAlso: AH=14h"Digiboard",AH=16h"Digiboard"
- --------S-1416-------------------------------
- INT 14 - FOSSIL - INSERT/DELETE FUNCTION FROM TIMER TICK CHAIN
- AH = 16h
- AL = function
- 00h = delete
- 01h = add
- ES:DX -> routine to call
- Return: AX = status
- 0000h successful
- 0001h unsuccessful
- SeeAlso: AH=07h"FOSSIL"
- --------S-1416-------------------------------
- INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - LINK TO ANOTHER SERIAL DRIVER
- AH = 16h
- ES:BX -> calling driver's INT 14 entry point
- Return: nothing
- Program: PC-MOS/386 v5.01 is a multitasking, multiuser MS-DOS 5.0-compatible
- operating system by The Software Link, Inc.
- --------S-1416-------------------------------
- INT 14 - Digiboard DigiCHANNEL PC/X* - CCB COMMAND
- AH = 16h
- AL = CCB command number (see #0268) (see also following entries)
- BL = byte 2
- BH = byte 3
- CL = byte 1 (for all channel functions except 4Eh and 4Fh)
- DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
- Return: AH = status
- 00h successful
- 80h error
- FFh error
- SeeAlso: AX=1646h,AH=18h"Digiboard"
-
- (Table 0268)
- Values for Digiboard CCB command number:
- 40h Set Receive Mid Water Mark
- 41h Set Receive High Water Mark
- 42h Flush Receive Buffer
- 43h Flush Transmit Buffer
- 44h Transmit Pause
- 45h Transmit Resume
- 46h Set Interrupt to Host Mask
- 47h Set Baud, Data, Stop and Parity
- 48h Send Break
- 49h Set Modem Lines
- 4Ah Set Break Count
- 4Bh Set Handshake
- 4Ch Set Xon/Xoff Characters
- 4Dh Set Transmit Mid Water Mark
- 4Eh IRQ Polling Timer to Host
- 4Fh Buffer Set All
- 50h Port On
- 51h Port Off
- 52h Receive Pause
- 53h Special Character Interrupt
- 54h RS-422 Enable
- --------S-141646-----------------------------
- INT 14 - Digiboard - CCB COMMAND - SET INTERRUPT TO HOST MASK
- AX = 1646h
- BL = bits to set
- BH = bits to clear
- CL = byte 1
- DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
- Return: AH = status
- 00h successful
- 80h error
- FFh error
- SeeAlso: AH=16h"Digiboard",AX=1647h
- --------S-141647-----------------------------
- INT 14 - Digiboard - CCB COMMAND - SET BAUD/DATABITS/STOPBITS/PARITY
- AX = 1647h
- BL = baud
- BH = datatype
- CL = byte 1
- DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
- Return: AH = status
- 00h successful
- 80h error
- FFh error
- SeeAlso: AH=16h"Digiboard",AX=1646h,AX=1649h
- --------S-141649-----------------------------
- INT 14 - Digiboard - CCB COMMAND - SET MODEM LINES
- AX = 1649h
- BL = bits to set
- BH = bits to clear
- CL = byte 1
- DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
- Return: AH = status
- 00h successful
- 80h error
- FFh error
- SeeAlso: AH=16h"Digiboard",AX=1647h
- --------S-14164A-----------------------------
- INT 14 - Digiboard - CCB COMMAND - SET BREAK COUNT
- AX = 164Ah
- BL = break count
- CL = byte 1
- DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
- Return: AH = status
- 00h successful
- 80h error
- FFh error
- SeeAlso: AH=16h"Digiboard",AX=1649h,AX=164Bh
- --------S-14164B-----------------------------
- INT 14 - Digiboard - CCB COMMAND - SET HANDSHAKE
- AX = 164Bh
- BL = bits to set
- BH = bits to clear
- CL = byte 1
- DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
- Return: AH = status
- 00h successful
- 80h error
- FFh error
- SeeAlso: AH=16h"Digiboard",AX=1649h,AX=164Ch
- --------S-14164C-----------------------------
- INT 14 - Digiboard - CCB COMMAND - SET XON/XOFF CHARACTERS
- AX = 164Ch
- BL = XON character
- BH = XOFF character
- CL = byte 1
- DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
- Return: AH = status
- 00h successful
- 80h error
- FFh error
- SeeAlso: AH=16h"Digiboard",AX=164Bh,AX=164Dh
- --------S-14164D-----------------------------
- INT 14 - Digiboard - CCB COMMAND - SET TRANSMIT MID-WATER MARK
- AX = 164Dh
- BX = new mid-water mark
- CL = byte 1
- DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
- Return: AH = status
- 00h successful
- 80h error
- FFh error
- SeeAlso: AH=16h"Digiboard",AX=164Ch,AX=164Eh,AX=164Fh
- --------S-14164E-----------------------------
- INT 14 - Digiboard - CCB COMMAND - IRQ POLLING TIMER TO HOST
- AX = 164Eh
- BL = ticks
- BH = ???
- CL = mode
- DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
- Return: AH = status
- 00h successful
- 80h error
- FFh error
- SeeAlso: AH=16h"Digiboard",AX=164Dh
- --------S-14164F-----------------------------
- INT 14 - Digiboard - CCB COMMAND - BUFFER SET ALL
- AX = 164Fh
- BL = size
- DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
- Return: AH = status
- 00h successful
- 80h error
- FFh error
- SeeAlso: AH=16h"Digiboard",AX=164Dh
- --------S-141653-----------------------------
- INT 14 - Digiboard - CCB COMMAND - SPECIAL CHARACTER INTERRUPT
- AX = 1653h
- BL = enable/disable
- BH = special character
- CL = byte 1
- DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
- Return: AH = status
- 00h successful
- 80h error
- FFh error
- SeeAlso: AH=16h"Digiboard",AX=1646h
- --------S-1417-------------------------------
- INT 14 - FOSSIL - REBOOT SYSTEM
- AH = 17h
- AL = method
- 00h = cold boot
- 01h = warm boot
- SeeAlso: INT 16/AX=E0FFh,INT 19,INT 60/DI=0606h
- --------S-1417-------------------------------
- INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - WRITE MODEM CONTROL REGISTER
- AH = 17h
- AL = new value for UART's modem control register
- DX = port number
- Return: nothing
- --------S-1418-------------------------------
- INT 14 - FOSSIL - READ BLOCK
- AH = 18h
- CX = maximum number of characters to transfer
- DX = port number
- ES:DI -> user buffer
- Return: AX = number of characters transferred
- SeeAlso: AH=19h"FOSSIL",AH=83h"COURIERS",AX=FF02h,INT 6B/AX=0100h
- --------S-1418-------------------------------
- INT 14 - Digiboard DigiCHANNEL PC/X* - SEND BIOS COMMAND
- AH = 18h
- ES:BX -> 16-byte command string
- DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
- Return: AH = status
- 00h successful
- 80h timeout
- AL = mailbox status
- 00h no errors
- 8Xh BIOS error
- ES:BX buffer filled in with mailbox string
- ZF clear if no errors
- ZF set if either status byte contains an error code
- SeeAlso: AH=16h"Digiboard"
- --------S-1418-------------------------------
- INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - GET DRIVER DESCRIPTION
- AH = 18h
- DX = port number
- Return: DS:BX -> 40-byte buffer containing a string identifying the serial
- driver
- SeeAlso: AH=06h"PC-MOS"
- --------S-1419-------------------------------
- INT 14 - FOSSIL - WRITE BLOCK
- AH = 19h
- CX = maximum number of characters to transfer
- DX = port number
- ES:DI -> user buffer
- Return: AX = number of characters transferred
- SeeAlso: AH=18h"FOSSIL",AH=86h,INT 6B/AX=0000h
- --------S-1419-------------------------------
- INT 14 - Digiboard DigiCHANNEL PC/X* - SPECIAL CHARACTER INTERRUPT
- AH = 19h
- BL = flag
- 00h disable special character interrupt
- FFh enable interrupt
- DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
- Return: AH = status
- 00h successful
- FFh failed
- SeeAlso: AH=1Ah"Digiboard"
- --------S-1419-------------------------------
- INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - SELECTIVE BUFFER FLUSH
- AH = 19h
- AL = what to flush
- bit 0: input buffer
- bit 1: output buffer
- DX = port number
- Return: nothing
- SeeAlso: AH=09h"PC-MOS"
- --------S-141A-------------------------------
- INT 14 - FOSSIL - BREAK BEGIN OR END
- AH = 1Ah
- AL = 00h stop sending 'break'
- 01h start sending 'break'
- DX = port number
- Return: nothing
- SeeAlso: AH=06h"FOSSIL",AH=8Ah,AH=FAh
- --------S-141A-------------------------------
- INT 14 - Digiboard DigiCHANNEL PC/X - SPECIAL CHARACTER FLAG/COUNTER
- AH = 1Ah
- BX = subfunction
- 00h return pointer to special character flag byte
- 01h return pointer to special character counter word
- DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
- Return: ES:BX -> special character flag or counter
- Notes: flag is FFh if one or more special characters are in the receive
- buffer; it is 00h and the counter is invalid if no special characters
- are in the receive buffer
- counter (if valid) contains the number of characters in the receive
- buffer up to and including the last-received special character
- --------S-141B-------------------------------
- INT 14 - FOSSIL - RETURN INFORMATION ABOUT THE DRIVER
- AH = 1Bh
- DX = port number
- CX = size of user buffer
- ES:DI -> user buffer for driver info (see #0269)
- Return: AX = number of characters transferred
- CX = 3058h ("0X") (X00 FOSSIL only)
- DX = 2030h (" 0") (X00 FOSSIL only)
-
- Format of FOSSIL driver info:
- Offset Size Description (Table 0269)
- 00h WORD size of structure in bytes
- 02h BYTE FOSSIL spec driver conforms to
- 03h BYTE revision level of this specific driver
- 04h DWORD pointer to ASCIZ identification string
- 08h WORD size of the input buffer
- 0Ah WORD number of bytes left in buffer
- 0Ch WORD size of the output buffer
- 0Eh WORD number of bytes left in buffer
- 10h BYTE width of screen
- 11h BYTE length of screen
- 12h BYTE actual baud rate, computer to modem
- --------S-141C-------------------------------
- INT 14 - X00 FOSSIL - ACTIVATE PORT
- AH = 1Ch
- DX = port number
- Return: AX = 1954h if successful
- BL = maximum function number supported (not including 7Eh and above)
- BH = revision of FOSSIL specification supported
- Note: this is a duplicate of AH=04h, so that AH=04h may be made compatible
- with the PS/2 BIOS in a future release
- SeeAlso: AH=04h"FOSSIL",AH=1Dh
- --------S-141D-------------------------------
- INT 14 - X00 FOSSIL - DEACTIVATE PORT
- AH = 1Dh
- DX = port number
- Return: none
- Notes: this is a duplicate of AH=05h, so that AH=05h may be made compatible
- with the PS/2 BIOS in a future release
- ignored if the port was never activated with AH=04h or AH=1Ch
- SeeAlso: AH=05h"FOSSIL",AH=1Ch
- --------S-141E-------------------------------
- INT 14 - X00 FOSSIL - EXTENDED LINE CONTROL INITIALIZATION
- AH = 1Eh
- AL = break status
- 00h if break
- 01h if no break
- BH = parity (see #0270)
- BL = number of stop bits
- 00h one stop bit
- 01h two stop bits (1.5 if 5 bit word length)
- CH = word length (see #0271)
- CL = bps rate (see #0272)
- DX = port number
- Return: AX = port status code (see #0230,#0231)
- Notes: this function is intended to exactly emulate the PS/2 BIOS AH=04h call
- if the port was locked at X00 load time, the appropriate parameters are
- ignored
- SeeAlso: AH=00h,AH=04h"SERIAL"
-
- (Table 0270)
- Values for X00 FOSSIL parity:
- 00h no parity
- 01h odd parity
- 02h even parity
- 03h stick parity odd
- 04h stick parity even
- SeeAlso: #0233,#0271,#0272
-
- (Table 0271)
- Values for X00 FOSSIL word length:
- 00h 5 bits
- 01h 6 bits
- 02h 7 bits
- 03h 8 bits
- SeeAlso: #0234,#0270,#0272
-
- (Table 0272)
- Values for X00 FOSSIL bps rate:
- 00h 110
- 01h 150
- 02h 300
- 03h 600
- 04h 1200
- 05h 2400
- 06h 4800
- 07h 9600
- 08h 19200
- SeeAlso: #0235,#0270,#0271
- --------S-141E------------------------------------
- INT 14 - HUNTER 16 - READ COMMS PARAMETERS
- AH = 1Eh
- CX = channel number (00h COM1, 01h COM2, ...)
- DS:BX -> buffer for communications parameters (see #0273)
- Return: DS:BX buffer filled
- Note: the Husky Hunter 16 is an 8088-based ruggedized laptop. Other family
- members are the Husky Hunter, Husky Hunter 16/80, and Husky Hawk.
- SeeAlso: AH=20h"HUNTER"
-
- Format of HUNTER 16 communications parameters:
- Offset Size Description (Table 0273)
- 00h BYTE communications type (00h IBM, nonzero Husky)
- 01h BYTE port number (00h COM1, 01h COM2)
- 02h BYTE baud rate (00h 110 bps, 01h 150, 02h 300, 03h 600, 04h 1200,
- 05h 2400, 06h 4800, 07h 9600, 08h 19200, 09h 38400)
- 03h BYTE data bits (01h seven, 02h eight)
- 04h BYTE parity (00h none, 01h odd, 02h even)
- 05h BYTE stop bits (00h one, 01h two)
- 06h BYTE handshake (see #0274)
- 07h BYTE handshake protocol (00h none, 01h Xon/Xoff, 02h HWK3780)
- 08h BYTE Nulls after CR (0-20)
- 09h BYTE LF (00h off, 01h on)
- 0Ah BYTE Serig. 0..7Fh: Ignore this character
- 80h: Serig off
- 0Bh BYTE echo (00h off, 01h on)
- 0Ch BYTE transmit timeout in seconds (1-60) or 00h to disable
- 0Dh BYTE receive timeout in seconds (1-60) or 00h to disable
- 0Eh 5 BYTEs reserved
-
- Bitfields for HUNTER 16 handshake:
- Bit(s) Description (Table 0274)
- 0-1 0: RTS off, 1: RTS hold, 2: RTS true
- 2 DTR enabled
- 4 CTS enabled
- 5 DSR enabled
- 6 DCD enabled
- --------S-141F-------------------------------
- INT 14 - X00 FOSSIL - EXTENDED SERIAL PORT STATUS/CONTROL
- AH = 1Fh
- DX = port number
- AL = direction
- 00h read modem control register
- Return: BL = modem control register (see #0275)
- AH = status
- 01h write modem control register
- BL = modem control register (see #0275)
- Return: AX = status
- Notes: this function is intended to exactly emulate the PS/2 BIOS AH=05h call
- X00 forces BL bit 3 set (interrupts cannot be disabled)
- SeeAlso: AH=00h,AH=05h"SERIAL"
-
- Bitfields for X00 FOSSIL modem control register:
- Bit(s) Description (Table 0275)
- 0 data terminal ready
- 1 request to send
- 2 OUT1
- 3 OUT2 (interrupts) enabled
- 4 LOOP
- 5-7 reserved
- --------S-1420-------------------------------
- INT 14 - X00 FOSSIL - DESTRUCTIVE READ WITH NO WAIT
- AH = 20h
- DX = port number
- Return: AH = 00h if character was available
- AL = next character (removed from receive buffer)
- AX = FFFFh if no character available
- SeeAlso: AH=0Ch,AH=21h"X00"
- --------S-1420-------------------------------
- INT 14 - Alloy MW386 - ATTACH LOGICAL COMMUNICATIONS PORT TO PHYSICAL PORT
- AH = 20h
- AL = logical port (01h COM1, 02h COM2)
- DX = physical port number
- Return: AX = status
- 0000h successful
- FFFFh failed
- SeeAlso: AH=21h"Alloy",AH=22h"Alloy",AH=23h"Alloy",INT 17/AH=8Bh"Alloy"
- --------S-1420-------------------------------
- INT 14 - MultiDOS Plus - INITIALIZE PORT
- AH = 20h
- AL = port parameters (see #0226 at AH=00h"SERIAL")
- DX = port number (0-3)
- Return: AH = status
- 00h successful
- 41h no such port
- 64h monitor mode already active
- SeeAlso: AH=00h"SERIAL",AH=04h"MultiDOS",AH=21h"MultiDOS",AH=23h"MultiDOS"
- --------S-1420-------------------------------
- INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - CHECK OUTPUT QUEUE
- AH = 20h
- DX = port number
- Return: AX = number of bytes in output buffer
- SeeAlso: AH=0Ah"Digiboard"
- --------S-1420------------------------------------
- INT 14 - HUNTER 16 - SELECT COMMS PARAMETERS
- AH = 20h
- CX = channel number (00h COM1, 01h COM2, ...)
- DS:BX -> buffer with communications parameter (see #0273)
- Return: AX = status
- 0000h successful
- 0001h invalid parameter
- SeeAlso: AH=1Eh"HUNTER",AH=21h"HUNTER"
- --------S-1421-------------------------------
- INT 14 - X00 FOSSIL - STUFF RECEIVE BUFFER
- AH = 21h
- AL = character
- DX = port number
- Return: nothing
- Notes: the given character is inserted at the end of the receive buffer as if
- it had just arrived from the serial port; all normal receive
- processing (XON/XOFF, ^C/^K) is performed on the character
- fully re-entrant
- SeeAlso: AH=20h"X00"
- --------S-1421-------------------------------
- INT 14 - Alloy MW386 v1.x only - RELEASE PHYSICAL COMMUNICATIONS PORT
- AH = 21h
- DX = physical port number
- Return: AX = status
- 0000h successful
- FFFFh failed
- SeeAlso: AH=20h"Alloy",AH=22h"Alloy"
- --------S-1421-------------------------------
- INT 14 - MultiDOS Plus - TRANSMIT CHARACTER
- AH = 21h
- AL = character to send
- DX = port number
- Return: AH = status (see #0276)
- Note: monitor mode must have been turned on with AH=24h before calling
- SeeAlso: AH=20h"MultiDOS",AH=22h"MultiDOS",AH=24h"MultiDOS"
-
- (Table 0276)
- Values for MultiDOS Plus status:
- 00h successful
- 39h no DSR or CTS
- 3Ch no DSR
- 3Bh no CTS
- 41h no such port
- 42h monitor mode not active
- 97h timed out
- --------S-1421-------------------------------
- INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - OUTPUT CHARACTER, WITH TIMEOUT
- AH = 21h
- AL = char to send
- DX = port number
- SI = timeout in timer ticks (0000h = default)
- Return: after character is sent or timeout expires
- Program: PC-MOS/386 v5.01 is a multitasking, multiuser MS-DOS 5.0-compatible
- operating system by The Software Link, Inc.
- SeeAlso: AH=01h,AH=0Eh"Digiboard",AH=22h"PC-MOS"
- --------S-1421------------------------------------
- INT 14 - HUNTER 16 - EXTENDED CONTROL
- AH = 21h
- AL = command
- 01h force transmission of buffer
- 02h clear transmit buffer
- 03h clear receive buffer
- DX = port (00h COM1, 01h COM2)
- Return: AH = extended status
- Desc: executes the command on the selected port
- SeeAlso: AH=1Eh"HUNTER",AH=20h"HUNTER",AH=22h"HUNTER",AH=24h"HUNTER"
- --------S-1422-------------------------------
- INT 14 - Alloy MW386 v2+ - RELEASE LOGICAL COMMUNICATIONS PORT
- AH = 22h
- AL = logical port (01h COM1, 02h COM2)
- Return: AX = status (0000h successful)
- SeeAlso: AH=20h"Alloy",AH=21h"Alloy"
- --------S-1422-------------------------------
- INT 14 - MultiDOS Plus - RECEIVE CHARACTER
- AH = 22h
- DX = port number
- Return: AH = status (see also AH=21h"MultiDOS")
- 00h successful
- AL = character
- 3Dh framing and parity error
- 3Eh overrun error
- 3Fh framing error
- 40h parity error
- 96h ring buffer overflow
- Note: if no character is available, this function waits until a character
- arrives or an implementation-dependent timeout elapses
- SeeAlso: AH=20h"MultiDOS",AH=21h"MultiDOS",AH=27h
- --------S-1422-------------------------------
- INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - RECEIVE CHARACTER, WITH TIMEOUT
- AH = 22h
- DX = port number
- SI = timeout in timer ticks (0000h = default)
- Return: AH = port status (see also #0230 at AH=03h)
- bit 7 = 1 indicates time-out
- AL = character received
- Program: PC-MOS/386 v5.01 is a multitasking, multiuser MS-DOS 5.0-compatible
- operating system by The Software Link, Inc.
- SeeAlso: AH=02h,AH=0Fh"Digiboard",AH=21h"PC-MOS"
- --------S-1422------------------------------------
- INT 14 - HUNTER 16 - EXTENDED STATUS
- AH = 22h
- DX = port (00h COM1, 01h COM2)
- Return: AH = extended status
- BX = number of characters in input buffer
- CX = number of characters in output buffer
- Desc: returns the most recent Extended Status code for the port
- SeeAlso: AH=21h"HUNTER"
- --------S-1423-------------------------------
- INT 14 - Alloy MW386 v2+ - GET PORT NUMBER FROM LOGICAL PORT ID
- AH = 23h
- AL = logical port (01h COM1, 02h COM2)
- DH = user ID
- DL = process ID (DH,DL both FFh for current task)
- Return: AL = MW386 port mode (see #0277)
- CX = MW386 port number
- DH = owner's user ID
- DL = owner's task ID
- SeeAlso: AH=20h"Alloy",INT 17/AH=8Bh"Alloy"
-
- Bitfields for MW386 port mode:
- Bit(s) Description (Table 0277)
- 0 port is shared (spooler only)
- 1 port is spooled instead of direct (spooler only)
- 2 port is assigned as logical COM device, not in spooler
- 3 port is free
- --------S-1423-------------------------------
- INT 14 - MultiDOS Plus - GET PORT STATUS
- AH = 23h
- DX = port number
- Return: AH = line status (see #0230 at AH=03h)
- AL = modem status (see #0231 at AH=03h)
- SeeAlso: AH=03h,AH=07h"MultiDOS",AH=20h"MultiDOS"
- --------S-1423-------------------------------
- INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - DECLARE PORT OWNERSHIP
- AH = 23h
- DX = port number
- BX = TCB segment/selector address of owner task
- Return: nothing
- SeeAlso: AH=0Dh"Digiboard",AH=21h"PC-MOS",AH=22h"PC-MOS"
- --------S-1423------------------------------------
- INT 14 - HUNTER 16 - CONTROL HANDSHAKE LINES
- AH = 23h
- BH = handshake line to set (00h RTS, 01h DTR)
- BL = new level (00h low, 01h high)
- Return: nothing
- Desc: sets the handshake lines of COM1 to the desired level
- SeeAlso: AH=21h"HUNTER",AH=24h"HUNTER"
- --------S-1424-------------------------------
- INT 14 - Alloy MW386 v2+ - CHANGE PHYSICAL PORT PARAMETERS
- AH = 24h
- CX = physical I/O port number
- DS:DX -> configuration table (see #0278)
- Return: AH = 00h
- Note: invalid port numbers are merely ignored
- SeeAlso: INT 17/AH=96h
-
- Format of Alloy MW386 configuration table:
- Offset Size Description (Table 0278)
- 00h BYTE baud rate (see #0279)
- 01h BYTE data bits (00h=5, 01h=6, 02h=7, 03h=8)
- 02h BYTE parity (00h none, 01h odd, 02h even)
- 03h BYTE stop bits (00h=1, 01h=2)
- 04h BYTE receive flow control
- 00h none, 01h XON/XOFF, 02h DTR/DSR, 03h XPC, 04h RTS/CTS
- 05h BYTE transmit flow control (as for receive)
-
- (Table 0279)
- Values for Alloy MW386 baud rate:
- 00h 38400
- 01h 19200
- 02h 9600
- 03h 7200
- 04h 4800
- 05h 3600
- 06h 2400
- 07h 2000
- 08h 1200
- 09h 600
- 0Ah 300
- 0Bh 150
- 0Ch 134.5
- SeeAlso: #0235
- --------S-1424-------------------------------
- INT 14 - MultiDOS Plus - SET MONITOR MODE
- AH = 24h
- AL = port status storage
- 00h single status for entire receive buffer
- 01h separate status kept for each byte in receive buffer
- DX = port number
- Return: AH = status
- 00h successful
- 3Ah invalid status storage specified
- 41h no such port
- 64h monitor mode already active
- Note: in monitor mode, MultiDOS redirects all BIOS video output to a serial
- port
- SeeAlso: AH=20h"MultiDOS",AH=25h
- --------S-1424-------------------------------
- INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - ???
- AH = 24h
- Return: ???
- Program: PC-MOS/386 v5.01 is a multitasking, multiuser MS-DOS 5.0-compatible
- operating system by The Software Link, Inc.
- --------S-1424------------------------------------
- INT 14 - HUNTER 16 - CONTROL CTS HANDSHAKING
- AH = 24h
- AL = new CTS handshake state for COM1 (00h disabled, 01h enabled)
- Return: nothing
- SeeAlso: AH=23h"HUNTER",AH=25h"HUNTER",AH=26h"HUNTER"
- --------S-1425-------------------------------
- INT 14 - MultiDOS Plus - CLEAR BUFFERS
- AH = 25h
- AL = function
- 00h only clear buffers
- 01h clear buffers and deactivate
- DX = port number
- Return: AH = status
- 00h successful
- 3Ah invalid function
- 41h no such port
- 42h monitor mode not active
- SeeAlso: AH=20h"MultiDOS",AH=24h"MultiDOS"
- --------S-1425------------------------------------
- INT 14 - HUNTER 16 - CONTROL RS232 DRIVERS
- AH = 25h
- AL = new state of RS232 drivers (00h off, 01h on)
- Return: nothing
- Note: this function can be used to save power by turning off the RS232
- drivers. It can also be used to turn on the RS232 drivers before
- connecting to a remote system to avoid "garbage" while the drivers
- turn on.
- SeeAlso: AH=23h"HUNTER",AH=24h"HUNTER",AH=26h"HUNTER"
- --------S-1426------------------------------------
- INT 14 - HUNTER 16 - CONTROL RI POWER UP
- AH = 26h
- AL = 00h enable RI power up
- else disable RI power up
- Return: nothing
- Desc: control whether the Ring Indicator handshake can power up the Hunter
- --------S-1427-------------------------------
- INT 14 - MultiDOS Plus - GET BUFFER CHARACTER COUNT
- AH = 27h
- DX = port number
- Return: AH = status
- 00h successful
- 41h no such port
- 42h monitor mode not active
- AL = number of characters in receive buffer
- --------S-1427------------------------------------
- INT 14 - HUNTER 16 - GET INSTALLED PROTOCOLS COUNT
- AH = 27h
- AL = number of extended protocols installed (since last call)
- Return: AL = total number installed, including new ones
- Desc: Returns the number of extended communication protocols installed
- SeeAlso: AH=25h"HUNTER",AH=28h"HUNTER"
- --------S-1428------------------------------------
- INT 14 - HUNTER 16 - GET PROTOCOL NAME
- AH = 28h
- AL = protocol handle
- DS:BX -> 8 character buffer for protocol name
- Return: AH = status
- 00h successful
- DS:BX buffer filled with the protocol name
- FFh failed
- SeeAlso: AH=27h"HUNTER",AH=29h"HUNTER"
- --------S-1429------------------------------------
- INT 14 - HUNTER 16 - GET PROTOCOL HANDLE
- AH = 29h
- DS:BX -> buffer containing the protocol name
- Return: AH = status
- 00h successful
- AL = handle
- FFh failed
- SeeAlso: AH=28h"HUNTER",AH=2Ah"HUNTER"
- --------S-142A------------------------------------
- INT 14 - HUNTER 16 - EXTENDED PROTOCOL MENU
- AH = 2Ah
- AL = protocol handle
- Return: AH = status
- 00h successful
- FFh failed
- AL = menu handle
- SeeAlso: AH=29h"HUNTER",AH=2Bh"HUNTER"
- --------S-142B------------------------------------
- INT 14 - HUNTER 16 - GET EXTENDED PROTOCOL PARAMETERS
- AH = 2Bh
- AL = protocol handle
- DS:BX -> buffer for extended protocol parameters
- Return: AH = status
- 00h successful
- DS:BX buffer filled with extended parameters
- FFh failed
- SeeAlso: AH=2Ah"HUNTER"
- --------S-142C00----------------------------------
- INT 14 - HUNTER 16 - GET DTR
- AX = 2C00h
- Return: AH = 00h
- BL = current state
- 00h normal DTR operation
- else DTR is forced high
- Desc: Indicates whether the DTR signal on COM1 is forced high
- Note: the Husky Hunter 16 is an 8088-based ruggedized laptop. Other family
- members are the Husky Hunter, Husky Hunter 16/80, and Husky Hawk.
- SeeAlso: AH=2Ch"SET DTR"
- --------S-142C------------------------------------
- INT 14 - HUNTER 16 - SET DTR
- AH = 2Ch
- AL nonzero
- BL = new state
- 00h normal operation
- else force DTR high
- Return: AH = 00h
- Desc: determine whether the DTR signal on COM1 should be forced high
- SeeAlso: AX=2C00h
- --------N-1436-------------------------------
- INT 14 - ComShare - INSTALLATION CHECK
- AH = 36h
- Return: AX = 4353h ('CS') if installed
- BX = bitmap of installed ports (bit 0: COM1 is gateway, etc.)
- CX reserved for future use
- WORD DX:[0100h] = ComShare version number
- Program: The ComShare System is a modem-sharing program for NetBIOS and
- NetWare-based networks by NashaKala Corporation
- Note: ComShare supports the standard BIOS INT 14h calls with a slight
- change in the interpretation of speed values
- (see #0235 at AH=04h"SERIAL")
- SeeAlso: AH=00h"SERIAL",AH=04h"SERIAL",AX=F4FFh
- --------t-144000-----------------------------
- INT 14 - I1541 - INSTALLATION CHECK
- AX = 4000h
- Return: AX = 1541h if installed
- BH = I1541 major version (BCD)
- BL = I1541 minor version (BCD)
- CX = 0000h
- --------t-144001-----------------------------
- INT 14 - I1541 - TEST IF 1541 CABLE CONNECTED
- AX = 4001h
- Return: CF clear if connected
- BL = LPT number where 1541 cable is connected (1..3)
- CF set if cable not connected
- Desc: scan all the LPT ports searching for the adapter cable
- SeeAlso: AX=4000h
- --------t-144002-----------------------------
- INT 14 - I1541 - SELECT LPT PORT FOR OUTPUT
- AX = 4002h
- BL = LPT number (1..3)
- Return: CF clear if successful
- CF set otherwise
- Desc: force the input output routines to work on the cable placed on LPT BL
- SeeAlso: AX=4001h
- --------t-144003-----------------------------
- INT 14 - I1541 - RESET ALL DEVICES
- AX = 4003h
- Return: nothing
- Desc: send a reset pulse of 100ms to all CBM devices
- Note: it is necessary to wait about 2 seconds after reset before executing
- other instructions
- SeeAlso: AX=4000h,AX=4004h
- --------t-144004-----------------------------
- INT 14 - I1541 - SEND LISTEN SIGNAL
- AX = 4004h
- BH = device number (0..15)
- Return: CF clear if successful
- CF set on error
- AL = error number (see #0280)
- SeeAlso: AX=4005h,AX=4006h
-
- (Table 0280)
- Values for I1541 error number:
- 00h device not present
- 01h listener not ready
- 02h missing EOI time-out
- 03h EOI not completed
- 04h data not released
- 05h frame error
- --------t-144005-----------------------------
- INT 14 - I1541 - SEND SECONDARY ADDRESS FOR LISTEN
- AX = 4005h
- BL = channel number and mode (see #0281)
- Return: CF clear if successful
- CF set on error
- AL = error number (see #0280)
- SeeAlso: AX=4004h,AX=4006h
-
- Bitfields for I1541 channel number and mode:
- Bit(s) Description (Table 0281)
- 7-4 mode
- 0110 read/write
- 1110 close channel
- 1111 open channel
- 3-0 channel number
- --------t-144006-----------------------------
- INT 14 - I1541 - SEND UNLISTEN SIGNAL
- AX = 4006h
- Return: CF clear if successful
- CF set on error
- AL = error number (see #0280)
- SeeAlso: AX=4004h,AX=4005h
- --------t-144007-----------------------------
- INT 14 - I1541 - SEND TALK SIGNAL
- AX = 4007h
- BH = device number (0-15)
- Return: CF clear if successful
- CF set on error
- AL = error number (see #0280)
- SeeAlso: AX=4008h,AX=4009h
- --------t-144008-----------------------------
- INT 14 - I1541 - SEND SECONDARY ADDRESS FOR TALK
- AX = 4008h
- BL = channel number and mode (see #0281)
- Return: CF clear if successful
- CF set on error
- AL = error number (see also #0280)
- 40h turn around time-out
- SeeAlso: AX=4007h,AX=4009h
- --------t-144009-----------------------------
- INT 14 - I1541 - SEND UNTALK SIGNAL
- AX = 4009h
- Return: CF clear if successful
- CF set on error
- AL = error number (see #0280)
- SeeAlso: AX=4007h,AX=4008h
- --------t-14400A-----------------------------
- INT 14 - I1541 - SEND A BYTE TO A DEVICE
- AX = 400Ah
- BL = byte to send
- CL = last-byte flag
- 00h more bytes follow
- 01h this is the last byte to be sent
- Return: CF clear if successful
- CF set on error
- AL = error number (see #0280)
- SeeAlso: AX=4000h,AX=400Bh
- --------t-14400B-----------------------------
- INT 14 - I1541 - RECEIVE A BYTE FROM A DEVICE
- AX = 400Bh
- Return: CF clear if successful
- AL = byte received
- CL = last-byte flag
- 00h more bytes to follow
- 01h received byte is the last
- CF set on error
- AL = error number
- 80h EOI response required
- 81h talker not ready
- 82h clock not set
- 83h clock not released
- CL = 00h
- SeeAlso: AX=4000h,AX=400Ah
- --------t-14400C-----------------------------
- INT 14 - I1541 - WAIT
- AX = 400Ch
- CX = number of 838ns microticks to wait (0000h means 65536, ~55ms)
- Return: after wait period elapses
- SeeAlso: AX=4000h,AX=400Dh
- --------t-14400D-----------------------------
- INT 14 - I1541 - LONGWAIT
- AX = 400Dh
- DX:CX = number of 838ns microticks to wait
- (0000h:0000h means 4294967296, about one hour)
- Example: To wait 1s you must set DX:CX=(1s/838ns)=1193180
- SeeAlso: AX=4000h,AX=400Ch
- --------t-14400E-----------------------------
- INT 14 - I1541 - GET INFO
- AX = 400Eh
- Return: AX = LPT port I/O address in use (0000h if no cable in use)
- BL = LPT number (1..3) in use (00h if no cable in use)
- CF set if the cable is auto-detectable
- CF clear if cable could not be auto-detected or is not present
- SeeAlso: AX=4000h
- --------S-1456-------------------------------
- INT 14 U - BWCOM14 - INSTALLATION CHECK
- AH = 56h
- Return: CX = 0001h if installed
- Program: BWCOM14 is a network serial port emulator (simulating a Hayes modem
- connected to the serial port) distributed as part of the
- Beame&Whiteside BW-NFS package
- SeeAlso: AH=57h,AH=58h,INT 2F/AX=DF00h/BX=5445h
- --------S-1457-------------------------------
- INT 14 U - BWCOM14 - INITIALIZE
- AH = 57h
- DL = port number
- Return: AL = initialization status (00h successful, 01h already initialized)
- CX = port status (0001h port redirected, 0002h and FFFFh failed)
- Note: after this call, all invocations of INT 14/AH=00h-03h for the specified
- port will be handled by BWCOM14 until AH=58h is called
- SeeAlso: AH=00h"SERIAL",AH=56h,AH=58h
- --------S-1458-------------------------------
- INT 14 U - BWCOM14 - SHUTDOWN
- AH = 58h
- Return: CX = status (0001h successful, 0002h not initialized)
- Note: after this call, BWCOM14 will no longer redirect the COM port
- SeeAlso: AH=56h,AH=57h
- --------N-146F--BXFFFE-----------------------
- INT 14 U - Connection Manager - ???
- AH = 6Fh
- BX = FFFEh
- ???
- Return: ???
- Program: Connection Manager by Softwarehouse Corp. permits the sharing of
- serial ports over an IPX or NetBIOS-based network
- --------N-146F--BXFFFF-----------------------
- INT 14 - Connection Manager - INSTALLATION CHECK
- AH = 6Fh
- BX = FFFFh
- Return: DX:BX -> Connection Manager Communication Table if installed
- BX = FFFFh if not installed
- SeeAlso: AH=0Dh/DX=FFFFh
- --------S-146F00-----------------------------
- INT 14 - HP Vectra EX-BIOS - "F14_INQUIRE" - INSTALLATION CHECK
- AX = 6F00h
- BX <> 4850h (usually set to 0000h for simplicity)
- Return: BX = 4850h ("HP") if HP Extended BIOS serial port extensions available
- AX destroyed
- Note: supported by original HP Vectra AT and by ES/QS/RS series Vectras
- SeeAlso: AX=6F01h,AX=6F02h,AX=6F03h,AX=6F04h,INT 10/AX=6F00h,INT 14/AX=6F00h
- SeeAlso: INT 17/AX=6F00h,INT 33/AX=6F00h
- --------S-146F01-----------------------------
- INT 14 - HP Vectra EX-BIOS - "F14_EXINIT" - INITIALIZE SERIAL PORT
- AX = 6F01h
- BX = port attributes (see #0282)
- DX = port number (0-3)
- Return: AH = line status (see #0230)
- AL = modem status (see #0231)
- Note: supported by original HP Vectra AT and by ES/QS/RS series Vectras
- SeeAlso: AX=6F00h
-
- Bitfields for HP Vectra Extended BIOS serial port attributes:
- Bit(s) Description (Table 0282)
- 8-5 data rate (110, 150, 300, 600, 1200, 2400, 4800, 9600, 19200)
- 4-3 parity
- 00 none
- 01 odd
- 10 none
- 11 even
- 2 stop bits (0 = one, 1 = two)
- 1-0 bits per character
- 10 seven-bit characters
- 11 eight-bit characters
- 0x undefined
- --------S-146F02-----------------------------
- INT 14 - HP Vectra EX-BIOS - "F14_PUT_BUFFER" - TRANSMIT BUFFER
- AX = 6F02h
- CX = number of characters in buffer
- DX = port number (0-3)
- ES:DI -> buffer containing characters
- Return: AH = line status (see #0230)
- AL = modem status (see #0231)
- CX = number of bytes actually sent
- ES:DI -> next byte to be transferred (unchanged if all bytes sent)
- Desc: send characters from the specified buffer until all characters have
- been sent or an error/timeout is encountered
- Note: supported by original HP Vectra AT and by ES/QS/RS series Vectras
- SeeAlso: AX=6F00h,AX=6F03h,AX=6F04h,INT 17/AX=6F02h
- --------S-146F03-----------------------------
- INT 14 - HP Vectra EX-BIOS - "F14_GET_BUFFER" - READ DATA INTO BUFFER
- AX = 6F03h
- CX = size of buffer
- DX = port number (0-3)
- ES:DI -> buffer for received characters
- Return: AH = line status (see #0230)
- ---on error (AH bit 7 set)---
- AL = 00h
- ES:DI -> next byte to be transferred
- ---if successful---
- AL = last byte read
- ES:DI unchanged
- CX = number of bytes read
- Desc: read characters into the specified buffer until the buffer is filled
- or a timeout occurs
- Notes: supported by original HP Vectra AT and by ES/QS/RS series Vectras
- polls the Data Set Ready modem status and Data Ready line status bits
- to determine when characters are available
- SeeAlso: AX=6F00h,AX=6F02h,AX=6F04h
- --------S-146F04-----------------------------
- INT 14 - HP Vectra EX-BIOS - "F14_TRM_BUFFER" - READ UNTIL TERMINATOR
- AX = 6F04h
- BL = lowest termination character
- BH = highest termination character
- CX = size of buffer
- DX = port number (0-3)
- ES:DI -> buffer for received characters
- Return: AH = line status (see #0230)
- ---on error (AH bit 7 set)---
- AL = 00h
- ES:DI -> next byte to be transferred
- ---if successful---
- AL = last byte read
- ES:DI unchanged
- CX = number of bytes read
- Desc: read characters into the specified buffer until the buffer is filled,
- a character in the specified range is received, or a timeout occurs
- Notes: supported by original HP Vectra AT and by ES/QS/RS series Vectras
- polls the Data Set Ready modem status and Data Ready line status bits
- to determine when characters are available
- SeeAlso: AX=6F00h,AX=6F02h,AX=6F03h
- --------U-147000-----------------------------
- INT 14 - NEWCOM - INSTALLATION CHECK
- AX = 7000h
- Return: AX = 4E43h ('NC') if installed
- BX = 4F4Dh ('OM') if installed
- CH = major version number
- CL = minor version number
- DH = patch level
- DL = language (currently: 00h English, 01h French)
- Program: Newcom is a DOS commandline-enhancer by kilobug@kali.isicom.fr
- SeeAlso: INT 2F/AX=D44Dh
- --------S-147E-------------------------------
- INT 14 - FOSSIL - INSTALL AN EXTERNAL APPLICATION FUNCTION
- AH = 7Eh
- AL = code assigned to external application (80h-BFh)
- 80h reserved for communications FOSSIL
- 81h video FOSSIL
- 82h reserved for keyboard FOSSIL
- 83h reserved for system FOSSIL
- ES:DX -> entry point
- Return: AX = 1954h
- BL = code assigned to application (same as input AL)
- DH = 00h failed
- 01h successful
- SeeAlso: AH=7Fh,AH=80h"FOSSIL",AX=8100h,AH=82h"FOSSIL",AH=83h"FOSSIL"
- --------S-147F-------------------------------
- INT 14 - FOSSIL - REMOVE AN EXTERNAL APPLICATION FUNCTION
- AH = 7Fh
- AL = code assigned to external application
- ES:DX -> entry point
- Return: AX = 1954h
- BL = code assigned to application (same as input AL)
- DH = 00h failed
- 01h successful
- SeeAlso: AH=7Eh
- --------S-1480-------------------------------
- INT 14 - COMMUNICATIONS FOSSIL
- AH = 80h
- SeeAlso: AH=7Eh
- --------S-1480-------------------------------
- INT 14 - COURIERS.COM - INSTALLATION CHECK
- AH = 80h
- Return: AH = E8h if loaded
- Program: COURIERS is a TSR utility by PC Magazine
- --------S-148000-----------------------------
- INT 14 - ARTICOM - INSTALLATION CHECK
- AX = 8000h
- Return: AL = FFh if installed
- BH = major version
- BL = minor version
- Program: ArtiCom is an asynchronous communications driver by Artisoft which
- works on top of NetBIOS and allows modem/serial-port sharing by
- programs using INT 14 for serial I/O.
- Note: ArtiCom supports 32 simultaneous COM ports using multiport cards and
- drivers
- SeeAlso: AH=00h"SERIAL",AH=01h,AH=02h,AH=03h,AH=04h"SERIAL",AH=05h"SERIAL"
- SeeAlso: AX=8001h,AX=8002h
- --------S-148000-----------------------------
- INT 14 - COMM-DRV v14.0 - READ PORT METRICS - GET ERROR CODE AND BUFFER STATUS
- AX = 8000h
- DX = port number
- Return: AX = code for last error (see #0283)
- BX = number of characters in output buffer
- CX = nubmer of characters in input buffer
- DX = state flag (see #0284)
- Program: COMM-DRV is a universal serial communications driver by Willies'
- Computer Software Company, which supports standard INT 14 and
- FOSSIL calls as well as its own interfaces
- SeeAlso: AX=8001h"COMM-DRV",AX=8002h"COMM-DRV",AX=8003h"COMM-DRV"
-
- (Table 0283)
- Values for COMM-DRV error code:
- 00h no error
- 01h buffer not set or attempted to change buffer for active port
- 02h port not active
- 03h transmit buffer full
- 04h receive buffer full
- 05h syntax error
- 06h invalid buffer size
- 07h invalid port
- 08h handler changed
- 09h invalid baud rate
- 0Ah invalid parity setting
- 0Bh invalid data length
- 0Ch invalid number of stop bits
- 0Dh invalid protocol number
- 0Eh IRQ changed
- 0Fh port changged
- 10h invalid threshold setting
- 11h invalid IRQ number
- 12h interrupts not enabled
- 13h invalid break syntax
- 14h fatal error
- 15h CTS error
- 16h invalid RS232 I/O port address
- 17h environment variable not set
- 18h error on IOCTL call
- 19h error during atexit cleanup
- 1Ah error mapping for direct calls
- 1Bh error opening device
- 1Ch unable to allocate memory
- 1Dh error on external micro card
- 1Eh card changed error
- 1Fh card type error
- 20h not supported
- 21h parent port error
- 22h card command buffer full
- 23h no subdevice for this port
- 24h unknown error
- 25h external card busy
- 26h no more timers available
- 27h INT 14 vector changed
- 28h INT 08 vector changed
- 29h DPMI error
- 2Ah TSR buffer too small (or nonexistent)
- 2Bh out of asynchronous resources
- 2Ch out of timer resources
- 2Dh out of "other" timer resources
- 2Eh file I/O error
- 2Fh hardware memory > 64K
-
- Bitfields for state flag :
- Bit(s) Description (Table 0284)
- 0 port is active
- 1 output throttled (XOFF received, or DSR or CTS reset)
- 2 input throttled (XOFF sent, or DTR or RTS reset)
- --------S-148001-----------------------------
- INT 14 - ARTICOM - UNLOAD ASYNCHRONOUS REDIRECTOR FROM MEMORY
- AX = 8001h
- Return: AX = error code, if error (see #0286)
- SeeAlso: AX=8000h"ARTICOM",AX=8002h"ARTICOM",AX=8003h"ARTICOM"
- Index: uninstall;ARTICOM
- --------S-148001-----------------------------
- INT 14 - COMM-DRV v14.0 - READ PORT METRICS - GET PORT PARAMETERS
- AX = 8001h
- DX = port number
- Return: BX:DI -> Port Control Block (see #0293)
- SeeAlso: AX=8000h"COMM-DRV",AX=8002h"COMM-DRV",AX=8003h"COMM-DRV"
- --------S-148002-----------------------------
- INT 14 - ARTICOM - GET ASYNCHRONOUS REDIRECTOR STATUS
- AX = 8002h
- ES:DI -> buffer for redirector status structure (see #0285)
- Return: AX = error code, if error (see #0286)
- SeeAlso: AX=8000h"ARTICOM",AX=8003h"ARTICOM"
-
- Format of ARTICOM redirector status:
- Offset Size Description (Table 0285)
- 00h WORD redirector major and minor version numbers
- 02h WORD redirectable ports found
- 04h WORD redirectable ports + local ports found
- 06h WORD redirector internal buffer size
- 08h WORD maximum servers maintained
- 0Ah WORD number of adapters found
- --------S-148002-----------------------------
- INT 14 - COMM-DRV v14.0 - READ PORT METRICS - GET PORT PARAMETERS
- AX = 8002h
- DX = port number
- Return: AH bit 7 set on error
- AH bit 7 clear if successful
- BX:DI -> Port Control Block (see #0293) (modifyable portion only)
- SeeAlso: AX=8000h"COMM-DRV",AX=8001h"COMM-DRV",AX=8003h"COMM-DRV"
- --------S-148003-----------------------------
- INT 14 - ARTICOM - TRANSLATE ERROR CODE TO ERROR STRING
- AX = 8003h
- CX = error number to translate (see #0286)
- Return: ES:DI -> ASCIZ error text or 0000h:0000h if unable to translate
- SeeAlso: AX=8000h
-
- (Table 0286)
- Values for ARTICOM error codes:
- 00h "No error"
- 01h "An invalid port number was specified"
- 02h "Port is already redirected"
- 03h "Too many ports redirected"
- 04h "Cannot locate the server"
- 05h "Server is busy"
- 06h "Access denied"
- 07h "Resource in use"
- 08h "Resource in use - request queued"
- 09h "No such resource"
- 0Ah "Invalid username/password pair"
- 0Bh "Noncompatible version number"
- 0Ch "Can't remove from memory"
- 0Dh "Bad NETBIOS adapter number"
- 0Eh "No more entries in list"
- 0Fh "Resource is not available at this time"
- 10h "Invalid value to INT 14 call"
- --------S-148003-----------------------------
- INT 14 - COMM-DRV v14.0 - READ PORT METRICS - GET I/O BUFFER SIZES
- AX = 8003h
- DX = port number
- Return: AX = number of characters in input buffer
- BX = input buffer size
- CX = number of characters in output buffer
- DX = output buffer size
- SeeAlso: AX=8000h"COMM-DRV",AX=8001h"COMM-DRV",AX=8002h"COMM-DRV"
- --------S-148004-----------------------------
- INT 14 - ARTICOM - ATTACH ASYNCHRONOUS RESOURCE
- AX = 8004h
- DX = port to redirect (COM1=0, COM2=1, ...)
- CH = attach type
- CL = adapter to use for attach, 0FFh to search all
- ES:DI -> attachment structure (see #0287)
- Return: AX = error code, if error (see #0286)
- Note: The wildcard '*' is supported in the server and resource fields. If
- wild cards are used then the first matching available server is
- attached.
- SeeAlso: AX=8000h,AX=8003h,AX=8005h
-
- Format of ARTICOM attachment structure:
- Offset Size Description (Table 0287)
- 00h 16 BYTEs server to look for attach
- 10h 16 BYTEs attach to resource name
- 20h 16 BYTEs username for attach
- 30h 16 BYTEs password for username or resource
- 40h BYTE attach type
- 00h normal
- 01h queue if resource is in use (not yet supported in v1.00)
- --------S-148005-----------------------------
- INT 14 - ARTICOM - DETACH ASYNCHRONOUS RESOURCE
- AX = 8005h
- DX = port to detach (COM1=0, COM2=1, ...)
- Return: AX = error code, if error (see #0286)
- Note: only a previously attached resource can be detached
- SeeAlso: AX=8000h,AX=8003h,AX=8004h
- --------S-148006-----------------------------
- INT 14 - ARTICOM - GET RESOURCE INFORMATION
- AX = 8006h
- BX = remote port (COM1=0, COM2=1, ...)
- CL = adapter number, FFh to try all adapters
- ES:DI -> resource information structure (see #0288)
- DS:SI -> 16 byte server name. See note.
- Return: AX = error code, if error (see #0286)
- BX = next remote port, recall to get next resource info
- Note: Wild cards supported in both the resource field and server name
- string DS:SI. If wild cards used then first matching available
- resource information is searched. Set the resource field to FFh to
- return all resources.
- SeeAlso: AX=8000h,AX=8002h,AX=8003h,AX=8007h
-
- Format of ARTICOM resource information structure:
- Offset Size Description (Table 0288)
- 00h BYTE 00h = free, else used
- 01h 16 BYTEs resource name
- 11h 16 BYTEs username of resource user
- 21h WORD amount of time used
- 23h WORD amount of time remaining
- 53h 48 BYTEs description of resource
- 93h 64 BYTEs initialization string for modem
- B3h 32 BYTEs dial string for modem
- D3h 32 BYTEs hang-up string for modem
- --------S-148007-----------------------------
- INT 14 - ARTICOM - GET REDIRECTED PORT INFORMATION
- AX = 8007h
- DX = port index (COM1=0, COM2=1, ...)
- ES:DI -> buffer for port information structure (see #0289)
- Return: CF clear if redirection info returned and port is redirected
- CF set if not a redirected port
- AX = error code, if error (see #0286)
- SeeAlso: AX=8000h,AX=8003h,AX=8006h,AX=8008h
-
- Format of ARTICOM port information structure:
- Offset Size Description (Table 0289)
- 00h 16 BYTEs server name resource is on
- 10h BYTE adapter number server is on
- 11h 16 BYTEs resource name
- 21h WORD remote port index, use to get additional information
- 23h WORD buffer size
- 25h WORD baud rate (see #0290)
- 26h BYTE modem status register
- 27h BYTE modem control register
- 28h BYTE line status register
- 29h BYTE line control register
- 2Ah BYTE flow control in use: 0 - NONE, 1 - XON/XOFF, 2 - RTS/CTS
- 2Bh WORD send timeout in ticks
- 2Dh WORD receive timeout in ticks
- 2Fh WORD time used on remote port
- 31h WORD time left before timeout
- 33h BYTE if server changes allowed?
- 34h WORD FFFFh (-1) if connection ok, else old port index
-
- (Table 0290)
- Values for ARTICOM baud rate:
- 00h 110
- 01h 150
- 02h 300
- 03h 600
- 04h 1200
- 05h 2400
- 06h 4800
- 07h 9600
- 08h 19200
- 09h 38400
- 0Ah 57600
- 0Bh 115200
- 0Ch 134.5
- 0Dh 1800
- 0Eh 2000
- 0Fh 3600
- 10h 7200
- SeeAlso: #0235
- --------S-148008-----------------------------
- INT 14 - ARTICOM - GET AVAILABLE SERVER NAME
- AX = 8008h
- BX = server index (0,1,...)
- ES:DI -> server name structure (see #0291)
- Return: AX = error code, if error (see #0286)
- BX = next remote port, repeat call to get next available server
- Note: the wildcard '*' is supported in the server name field. Set the
- server name to FFh to search for all servers.
- SeeAlso: AX=8000h,AX=8003h,AX=8007h
-
- Format of ARTICOM server name structure:
- Offset Size Description (Table 0291)
- 00h 16 BYTEs (call) ASCIZ server name
- 10h BYTE (ret) the adapter server is found
- --------S-148009-----------------------------
- INT 14 - ARTICOM - SET SEND AND RECEIVE TIMEOUTS
- AX = 8009h
- BX = send timeout in ticks
- CX = receive timeout in ticks
- DX = port index (COM1=0, COM2=1, ...)
- Return: nothing
- SeeAlso: AX=8000h,AX=800Ah
- --------S-14800A-----------------------------
- INT 14 - ARTICOM - MODIFY FLOW CONTROL
- AX = 800Ah
- BL = flow control type (00h none, 01h XON/XOFF, 02h RTS/CTS)
- DX = port index (COM1=0, COM2=1, ...)
- Return: AX = error code, if error (see #0286)
- Note: for attached ports only!
- SeeAlso: AX=8000h,AX=8003h,AX=8009h
- --------S-148025-----------------------------
- INT 14 - ARTICOM - SET INTERNAL SEND/RECEIVE VECTOR
- AX = 8025h
- DS:DX -> address of trap function (see #0292) to call on read/write
- Return: nothing
- Note: setting the vector to a user function allows the redirector's activity
- to be monitored.
- SeeAlso: AX=8000h,AX=8035h,INT 21/AH=25h
-
- (Table 0292)
- Values ARTICOM trap function is called with:
- AH = operation
- 80h reading character
- 81h writing character
- AL = character
- Return: AX must be preserved
- far JUMP to old trap function (see AX=8035h)
- --------S-148035-----------------------------
- INT 14 - ARTICOM - GET INTERNAL SEND/RECEIVE VECTOR
- AX = 8035h
- Return: ES:BX -> address of current send/receive routine
- Note: this function returns the address of the routine which is called
- inside A-REDIR.EXE each time a character is received or sent on the
- active COM port.
- SeeAlso: AX=8000h,AX=8025h,INT 21/AH=35h
- --------S-1481-------------------------------
- INT 14 - COURIERS.COM - CHECK IF PORT BUSY
- AH = 81h
- AL = port number (1-4)
- Return: AH = 00h port available
- 01h port exists but already in use
- 02h port nonexistent
- Program: COURIERS is a TSR utility by PC Magazine
- SeeAlso: AH=83h,AH=8Dh
- --------S-1481-------------------------------
- INT 14 - COMM-DRV - EXTENDED INITIALIZATION
- AH = 81h
- BX:DI -> port control block (see #0293)
- DX = port number
- Return: AH = line status register (see #0230)
- error if bit 7 set
- AL = modem status register (see #0231)
- Program: COMM-DRV is a universal serial communications driver by Willies'
- Computer Software Company, which supports standard INT 14 and
- FOSSIL calls as well as its own interfaces
- Note: AX=8001h should be called first to fill in the port control block
- SeeAlso: AH=00h,AX=8001h,AH=82h"COMM-DRV",AH=86h"COMM-DRV"
-
- Format of COMM-DRV port control block:
- Offset Type Description (Table 0293)
- 00h WORD port IO address
- 02h WORD port IRQ
- 04h WORD baud rate
- 06h WORD parity
- 08h WORD data bits
- 0Ah WORD stop bits
- 0Ch WORD break status (0000h off)
- 0Eh WORD flow control protocol
- 10h BYTE input block
- 11h BYTE output block
- 12h WORD low threshold
- 14h WORD high threshold
- 16h WORD segment of buffer
- 18h WORD offset of buffer
- 1Ah WORD input buffer length
- 1Ch WORD output buffer length
- 1Eh BYTE auxiliary address
- 1Fh BYTE spare
- 20h 4 WORDs spares
- --------V-148100-----------------------------
- INT 14 - VIDEO FOSSIL - RETURN VFOSSIL INFORMATION
- AX = 8100h
- ES:DI -> buffer for VFOSSIL information (see #0294)
- Return: AX = 1954h if installed
- SeeAlso: AH=7Eh,AX=8101h
-
- Format of VFOSSIL information:
- Offset Size Description (Table 0294)
- 00h WORD size of information in bytes, including this field
- 02h WORD VFOSSIL major version
- 04h WORD VFOSSIL revision level
- 06h WORD highest VFOSSIL application function supported
- --------V-148101-----------------------------
- INT 14 - VIDEO FOSSIL - OPEN VFOSSIL
- AX = 8101h
- ES:DI -> buffer for application function table (see #0295)
- CX = length of buffer in bytes
- Return: AX = 1954h if installed
- BH = highest VFOSSIL application function supported
- Note: the number of initialized pointers in the application function table
- will never exceed CX/4; if the buffer is large enough, BH+1 pointers
- will be initialized
- SeeAlso: AX=8102h
-
- Format of VFOSSIL application function table:
- Offset Size Description (Table 0295)
- 00h DWORD -> function to query current video mode (VioGetMode)(see #0300)
- 04h DWORD -> function to set video mode (VioSetMode) (see #0301)
- 08h DWORD -> function to query hardware config (VioGetConfig) (see #0302)
- 0Ch DWORD -> function to write data in TTY mode (VioWrtTTY) (see #0303)
- 10h DWORD -> function to get current ANSI state (VioGetANSI) (see #0304)
- 14h DWORD -> function to set new ANSI state (VioSetANSI) (see #0305)
- 18h DWORD -> function to get curr cursor position (VioGetCurPos)
- (see #0306)
- 1Ch DWORD -> function to set cursor position (VioSetCurPos) (see #0307)
- 20h DWORD -> function to get cursor shape (VioGetCurType) (see #0308)
- 24h DWORD -> function to set cursor shape (VioSetCurType) (see #0309)
- 28h DWORD -> function to scroll screen up (VioScrollUp) (see #0310)
- 2Ch DWORD -> function to scroll screen down (VioScrollDn) (see #0311)
- 30h DWORD -> function to read cell string from screen (VioReadCellStr)
- (see #0312)
- 34h DWORD -> function to read char string from screen (VioReadCharStr)
- (see #0313)
- 38h DWORD -> function to write a cell string (VioWrtCellStr)
- (see #0314)
- 3Ch DWORD -> function to write char string, leaving attr (VioWrtCharStr)
- (see #0315)
- 40h DWORD -> function to write char string,const attr (VioWrtCharStrAttr)
- (see #0316)
- 44h DWORD -> function to replicate an attribute (VioWrtNAttr)
- (see #0317)
- 48h DWORD -> function to replicate a cell (VioWrtNCell)
- (see #0318)
- 4Ch DWORD -> function to replicate a character (VioWrtNChar)
- (see #0319)
-
- Format of VFOSSIL video mode data structure:
- Offset Size Description (Table 0296)
- 00h WORD length of structure including this field
- 02h BYTE mode characteristics
- bit 0: clear if MDA, set otherwise
- bit 1: graphics mode
- bit 2: color disabled (black-and-white)
- 03h BYTE number of colors supported (1=2 colors, 4=16 colors, etc)
- 04h WORD number of text columns
- 06h WORD number of text rows
- 08h WORD reserved
- 0Ah WORD reserved
- 0Ch DWORD reserved
- SeeAlso: #0300,#0301
-
- Format of VFOSSIL video configuration data:
- Offset Size Description (Table 0297)
- 00h WORD structure length including this field
- 02h WORD adapter type
- 00h monochrome/printer
- 01h CGA
- 02h EGA
- 03h VGA
- 07h 8514/A
- 04h WORD display type
- 00h monochrome
- 01h color
- 02h enhanced color
- 09h 8514
- 06h DWORD adapter memory size
- SeeAlso: #0302
-
- Format of VFOSSIL cursor type record:
- Offset Size Description (Table 0298)
- 00h WORD cursor start line
- 02h WORD cursor end line
- 04h WORD cursor width (always 01h)
- 06h WORD cursor attribute (FFFFh = hidden)
-
- (Table 0299)
- Values for VFOSSIL error code:
- 0000h successful
- 0074h internal VIO failure
- 0163h unsupported mode
- 0166h invalid row value
- 0167h invalid column value
- 017Eh buffer too small
- 01A5h invalid VIO parameter
- 01B4h invalid VIO handle
-
- (Table 0300)
- Call VioGetMode with:
- STACK: WORD VIO handle (must be 00h)
- DWORD pointer to video mode data structure (see #0296)
- Return: AX = error code (00h, 74h, 17Eh, 1B4h) (see #0299)
- SeeAlso: #0301
-
- (Table 0301)
- Call VioSetMode with:
- STACK: WORD VIO handle (must be 00h)
- DWORD pointer to video mode data structure (see #0296)
- Return: AX = error code (00h, 74h, 163h, 17Eh, 1A5h, 1B4h) (see #0299)
- SeeAlso: #0300
-
- (Table 0302)
- Call VioGetConfig with:
- STACK: WORD VIO handle (must be 00h)
- DWORD pointer to video configuration data buffer (see #0297)
- Return: AX = error code (00h, 74h, 17Eh, 1B4h) (see #0299)
-
- (Table 0303)
- Call VioWrtTTY with:
- STACK: WORD VIO handle (must be 00h)
- WORD length of string
- DWORD pointer to character string to be written to screen
- Return: AX = error code (00h, 74h, 1B4h) (see #0299)
- Notes: write wraps at end of line and terminates if it reaches end of screen
- in ANSI mode, ANSI control sequences are interpreted, and this func is
- not required to be reentrant; in non-ANSI mode, the function is
- reentrant and may be called from within an MS-DOS function call
-
- (Table 0304)
- Call VioGetANSI with:
- STACK: WORD VIO handle (must be 00h)
- DWORD pointer to WORD which will be set to 00h if ANSI is off
- or 01h if ANSI is on
- Return: AX = error code (00h, 74h, 1B4h) (see #0299)
- SeeAlso: #0305
-
- (Table 0305)
- Call VioSetANSI with:
- STACK: WORD VIO handle (must be 00h)
- DWORD pointer to WORD indicating new state of ANSI
- 00h off, 01h on
- Return: AX = error code (00h, 74h, 1A4h, 1B4h) (see #0299)
- SeeAlso: #0304
-
- (Table 0306)
- Call VioGetCurPos with:
- STACK: WORD VIO handle (must be 00h)
- DWORD pointer to WORD to hold current cursor column (0-based)
- DWORD pointer to WORD to hold current cursor row (0-based)
- Return: AX = error code (00h, 74h, 1B4h) (see #0299)
- SeeAlso: #0307
-
- (Table 0307)
- Call VioSetCurPos with:
- STACK: WORD VIO handle (must be 00h)
- WORD cursor column
- WORD cursor row
- Return: AX = error code (00h, 74h, 166h, 167h, 1B4h) (see #0299)
- Note: if either coordinate is invalid, the cursor is not moved
- SeeAlso: #0306
-
- (Table 0308)
- Call VioGetCurType with:
- STACK: WORD VIO handle (must be 00h)
- DWORD pointer to cursor type record (see #0298)
- Return: AX = error code (00h, 74h, 1B4h) (see #0299)
- SeeAlso: #0309
-
- (Table 0309)
- Call VioSetCurType with:
- STACK: WORD VIO handle (must be 00h)
- DWORD pointer to cursor type record (see #0298)
- Return: AX = error code (00h, 74h, 1A4h, 1B4h) (see #0299)
- SeeAlso: #0310
-
- (Table 0310)
- Call VioScrollUp with:
- STACK: WORD VIO handle (must be 00h)
- DWORD pointer to char/attr cell for filling emptied rows
- WORD number or rows to scroll (FFFFh = clear area)
- WORD right column of scroll area
- WORD bottom row of scroll area
- WORD left column of scroll area
- WORD top row of scroll area
- Return: AX = error code (00h, 74h, 166h, 167h, 1B4h) (see #0299)
- SeeAlso: #0311,INT 10/AH=06h
-
- (Table 0311)
- Call VioScrollDn with:
- STACK: WORD VIO handle (must be 00h)
- DWORD pointer to char/attr cell for filling emptied rows
- WORD number or rows to scroll (FFFFh = clear area)
- WORD right column of scroll area
- WORD bottom row of scroll area
- WORD left column of scroll area
- WORD top row of scroll area
- Return: AX = error code (00h, 74h, 166h, 167h, 1B4h) (see #0299)
- SeeAlso: #0310,INT 10/AH=07h
-
- (Table 0312)
- Call VioReadCellStr with:
- STACK: WORD VIO handle (must be 00h)
- WORD column at which to start reading
- WORD row at which to start reading
- DWORD pointer to WORD containing length of buffer in bytes
- on return, WORD contains number of bytes actually read
- DWORD pointer to buffer for cell string
- Return: AX = error code (00h, 74h, 166h ,167h, 1B4h) (see #0299)
-
- (Table 0313)
- Call VioReadCharStr with:
- STACK: WORD VIO handle (must be 00h)
- WORD column at which to start reading
- WORD row at which to start reading
- DWORD pointer to WORD containing length of buffer in bytes
- on return, WORD contains number of bytes actually read
- DWORD pointer to buffer for character string
- Return: AX = error code (00h, 74h, 166h ,167h, 1B4h) (see #0299)
-
- (Table 0314)
- Call VioWrtCellStr with:
- STACK: WORD VIO handle (must be 00h)
- WORD column at which to start writing
- WORD row at which to start writing
- WORD length of cell string in bytes
- DWORD pointer to cell string to write
- Return: AX = error code (00h, 74h, 166h, 167h, 1B4h) (see #0299)
- Note: write wraps at end of line and terminates if it reaches end of screen
-
- (Table 0315)
- Call VioWrtCharStr with:
- STACK: WORD VIO handle (must be 00h)
- WORD column at which to start writing
- WORD row at which to start writing
- WORD length of character string
- DWORD pointer to character string to write
- Return: AX = error code (00h, 74h, 166h, 167h, 1B4h) (see #0299)
- Note: write wraps at end of line and terminates if it reaches end of screen
-
- (Table 0316)
- Call VioWrtCharStrAttr with:
- STACK: WORD VIO handle (must be 00h)
- DWORD pointer to attribute to be applied to each character
- WORD column at which to start writing
- WORD row at which to start writing
- WORD length of character string
- DWORD pointer to character string to write
- Return: AX = error code (00h, 74h, 166h, 167h, 1B4h) (see #0299)
- Note: write wraps at end of line and terminates if it reaches end of screen
-
- (Table 0317)
- Call VioWrtNAttr with:
- STACK: WORD VIO handle (must be 00h)
- WORD column at which to start writing
- WORD row at which to start writing
- WORD number of times to write attribute
- DWORD pointer to display attribute to replicate
- Return: AX = error code (00h, 74h, 166h, 167h, 1B4h) (see #0299)
- Note: write wraps at end of line and terminates if it reaches end of screen
-
- (Table 0318)
- Call VioWrtNCell with:
- STACK: WORD VIO handle (must be 00h)
- WORD column at which to start writing
- WORD row at which to start writing
- WORD number of times to write cell
- DWORD pointer to cell to replicate
- Return: AX = error code (00h, 74h, 166h, 167h, 1B4h) (see #0299)
- Note: write wraps at end of line and terminates if it reaches end of screen
-
- (Table 0319)
- Call VioWrtNChar with:
- STACK: WORD VIO handle (must be 00h)
- WORD column at which to start writing
- WORD row at which to start writing
- WORD number of times to write character
- DWORD pointer to character to replicate
- Return: AX = error code (00h, 74h, 166h, 167h, 1B4h) (see #0299)
- Note: write wraps at end of line and terminates if it reaches end of screen
- --------V-148102-----------------------------
- INT 14 - VIDEO FOSSIL - CLOSE VFOSSIL
- AX = 8102h
- Return: AX = 1954h
- Note: terminates all operations; after this call, the video FOSSIL may either
- be removed from memory or reinitialized
- SeeAlso: AX=8101h,AX=8103h
- --------V-148103-----------------------------
- INT 14 - VIDEO FOSSIL - UNINSTALL
- AX = 8103h
- Return: AX = 1954h
- Note: this is an extension to the VFOSSIL spec by Bob Hartman's VFOS_IBM
- --------K-1482-------------------------------
- INT 14 - KEYBOARD FOSSIL
- AH = 82h
- SeeAlso: AH=7Eh
- --------S-1482-------------------------------
- INT 14 - COURIERS.COM - CONFIGURE PORT
- AH = 82h
- AL = port number (1-4)
- BX = speed (bps)
- CX = bit flags
- bit 0: enable input flow control
- bit 1: enable output flow control
- bit 2: use X.PC protocol (not yet implemented)
- Return: nothing
- SeeAlso: AH=00h,AH=8Ch,INT 7A"X.PC"
- --------S-1482-------------------------------
- INT 14 - COMM-DRV v14.0 - PORT CLEANUP
- AH = 82h
- DX = port number
- Return: AH bit 7 set on error
- AH bit 7 clear if successful
- Desc: reset the port to its state before the AH=81h initialization and unhook
- any interrupts used by the port
- SeeAlso: AH=81h"COMM-DRV",AH=83h"COMM-DRV"
- ----------1483-------------------------------
- INT 14 - SYSTEM FOSSIL
- AH = 83h
- SeeAlso: AH=7Eh
- --------S-1483-------------------------------
- INT 14 - COURIERS.COM - START INPUT
- AH = 83h
- ES:BX -> circular input buffer
- CX = length of buffer
- (should be at least 128 bytes if input flow control enabled)
- Return: nothing
- SeeAlso: AH=18h,AH=87h,AH=8Dh,AH=A5h"BAPI"
- --------S-1483-------------------------------
- INT 14 - COMM-DRV v14.0 - FLUSH COMMUNICATION BUFFERS
- AH = 83h
- DX = port number
- AL = subfunction
- 00h flush input buffer
- 01h flush output buffer
- 02h flush both buffers
- Return: AH bit 7 set on error
- AH bit 7 clear if successful
- SeeAlso: AH=81h"COMM-DRV",AH=84h"COMM-DRV"
- --------S-1484-------------------------------
- INT 14 - COURIERS.COM - READ CHARACTER
- AH = 84h
- Return: ZF set if no characters available
- ZF clear
- AL = character
- AH = modem status bits
- bit 7: set on input buffer overflow
- SeeAlso: AH=02h,AH=86h,AH=89h
- --------S-1484-------------------------------
- INT 14 - COMM-DRV v14.0 - SEND PACKET
- AH = 84h
- CX = packet length in bytes
- DX = port number
- ES:DI -> packet to be sent
- Return: AH = line status (see #0230)
- bit 7 set on error
- AL destroyed
- SeeAlso: AH=83h"COMM-DRV",AH=85h"COMM-DRV",AH=86h"COMM-DRV"
- --------S-1485-------------------------------
- INT 14 - COURIERS.COM - FLUSH PENDING INPUT
- AH = 85h
- Return: nothing
- SeeAlso: AH=0Ah,AH=88h"COURIERS"
- --------S-1485-------------------------------
- INT 14 - COMM-DRV v14.0 - RECEIVE PACKET
- AH = 85h
- CX = length of packet in bytes
- DX = port number
- ES:DI -> buffer for packet
- Return: AH = line status (see #0230)
- bit 7 set on error
- AL destroyed
- Note: this call requires that at least the requested number of bytes are
- already present in the input buffer, and will fail if there are
- fewer bytes available
- SeeAlso: AH=84h"COMM-DRV",AH=86h"COMM-DRV",AH=8Eh"COMM-DRV"
- --------S-1486-------------------------------
- INT 14 - COURIERS.COM - START OUTPUT
- AH = 86h
- ES:BX -> output buffer
- CX = length of output buffer
- Return: nothing
- SeeAlso: AH=19h,AH=83h"COURIERS",AH=A4h"BAPI"
- --------S-1486-------------------------------
- INT 14 - COMM-DRV v14.0 - SET INPUT/OUTPUT TIMEOUTS
- AH = 86h
- BL = maximum clock ticks to wait before signalling error on input func
- BH = maximum clock ticks to wait before signalling error on output
- DX = port number
- SI = input timeout in clock ticks if BL=FFh and BH=FFh
- DI = output timeout in clock ticks if BL=FFh and BH=FFh
- Return: AH bit 7 set on error
- AH bit 7 clear if successful
- Note: functions 02h, 85h, and 8Eh will wait for the input timeout before
- returning an error when no data is available; functions 01h and 84h
- will wait for the output timeout before returning an error if there
- is no space to output the data
- SeeAlso: AH=01h,AH=02h,AH=84h"COMM-DRV",AH=85h"COMM-DRV",AH=8Eh"COMM-DRV"
- --------S-1487-------------------------------
- INT 14 - COURIERS.COM - OUTPUT STATUS
- AH = 87h
- Return: AX = number of unsent characters
- SeeAlso: AH=88h"COURIERS"
- --------S-1487-------------------------------
- INT 14 - COMM-DRV v14.0 - TURN ON DTR
- AH = 87h
- DX = port number
- Return: AH bit 7 set on error
- AH bit 7 clear if successful
- SeeAlso: AX=8000h"COMM-DRV",AH=88h"COMM-DRV",AH=89h"COMM-DRV"
- --------S-1488-------------------------------
- INT 14 - COURIERS.COM - ABORT OUTPUT
- AH = 88h
- SeeAlso: AH=09h"FOSSIL",AH=85h"COURIERS"
- --------S-1488-------------------------------
- INT 14 - COMM-DRV v14.0 - TURN OFF DTR
- AH = 88h
- DX = port number
- Return: AH bit 7 set on error
- AH bit 7 clear if successful
- Program: COMM-DRV is a universal serial communications driver by Willies'
- Computer Software Company, which supports standard INT 14 and
- FOSSIL calls as well as its own interfaces
- SeeAlso: AX=8000h"COMM-DRV",AH=87h"COMM-DRV",AH=8Ah"COMM-DRV"
- --------S-1489-------------------------------
- INT 14 - COURIERS.COM - SEND SINGLE CHARACTER
- AH = 89h
- CL = character to send
- Return: nothing
- SeeAlso: AH=01h,AH=84h"COURIERS"
- --------S-1489-------------------------------
- INT 14 - COMM-DRV v14.0 - TURN ON RTS
- AH = 89h
- DX = port number
- Return: AH bit 7 set on error
- AH bit 7 clear if successful
- SeeAlso: AX=8000h"COMM-DRV",AH=87h"COMM-DRV",AH=8Ah"COMM-DRV"
- --------S-148A-------------------------------
- INT 14 - COURIERS.COM - SEND BREAK
- AH = 8Ah
- Return: nothing
- SeeAlso: AH=89h"COURIERS",AH=FAh
- --------S-148A-------------------------------
- INT 14 - COMM-DRV v14.0 - TURN OFF RTS
- AH = 8Ah
- DX = port number
- Return: AH bit 7 set on error
- AH bit 7 clear if successful
- SeeAlso: AX=8000h"COMM-DRV",AH=88h"COMM-DRV",AH=89h"COMM-DRV"
- --------S-148B-------------------------------
- INT 14 - COMM-DRV v14.0 - SET USER INTERRUPT ROUTINE
- AH = 8Bh
- CX = bitmask of interrupt to process
- 00h = deinstall
- BX:DI -> DWORD containing address of function to be called
- Return: AH bit 7 clear if successful
- AH bit 7 set on error
- --------S-148C-------------------------------
- INT 14 - COURIERS.COM - SET SPEED
- AH = 8Ch
- BX = speed in bps
- Return: nothing
- SeeAlso: AH=00h,AH=82h"COURIERS"
- --------S-148C-------------------------------
- INT 14 - COMM-DRV v14.0 - READ UART REGISTER
- AH = 8Ch
- AL = register offset
- DX = port number
- Return: AH bit 7 set on error
- AH bit 7 clear if successful
- AL = contents of UART register
- SeeAlso: AH=8Dh"COMM-DRV"
- --------S-148D-------------------------------
- INT 14 - COURIERS.COM - DECONFIGURE PORT
- AH = 8Dh
- Return: nothing
- SeeAlso: AH=82h"COURIERS"
- --------S-148D-------------------------------
- INT 14 - COMM-DRV v14.0 - WRITE UART REGISTER
- AH = 8Dh
- AL = register offset
- BL = new value for UART register
- DX = port number
- Return: AH bit 7 set on error
- AH bit 7 clear if successful
- SeeAlso: AH=8Ch"COMM-DRV"
- --------S-148E-------------------------------
- INT 14 - COMM-DRV v14.0 - READ PACKET NONDESTRUCTIVELY
- AH = 8Eh
- CX = length of packet in bytes
- DX = port number
- ES:DI -> buffer for packet
- Return: AH = line status (see #0230)
- bit 7 set on error (see AX=8000h"COMM-DRV")
- AL destroyed
- Program: COMM-DRV is a universal serial communications driver by Willies'
- Computer Software Company, which supports standard INT 14 and
- FOSSIL calls as well as its own interfaces
- Desc: retrieve a packet from the input buffer without removing it from the
- buffer
- Note: this call requires that at least the requested number of bytes are
- already present in the input buffer, and will fail if there are
- fewer bytes available
- SeeAlso: AX=8000h"COMM-DRV",AH=84h"COMM-DRV",AH=85h"COMM-DRV",AH=86h"COMM-DRV"
- --------S-14A0-------------------------------
- INT 14 - 3com BAPI SERIAL I/O - CONNECT TO PORT
- AH = A0h
- ES:BX -> ASCIZ internet host name
- CX = length of name
- Return: AH = return code (00h,04h-06h,08h,0Ah-0Ch) (see #0320)
- CL = session ID
- Program: the Bridge Application Program Interface is a set of functions which
- makes many of the details of LAN communications transparent
- Note: Novell TELAPI.EXE returns AH=09h (not supported) and CL=00h
- SeeAlso: AH=A1h"BAPI",AH=A2h"BAPI",AH=A5h"BAPI",AX=AF00h
-
- (Table 0320)
- Values for 3com BAPI return code:
- 00h successful
- 01h no characters written
- 02h no characters read
- 03h no such session
- 04h clearinghouse name not found
- 05h no response from host
- 06h no more sessions available
- 07h session aborted
- 08h invalid clearinghouse name
- 09h not supported
- 0Ah internal (general) network error
- 0Bh out of memory
- 0Ch invalid IP address
- --------S-14A0--CXFFFF-----------------------
- INT 14 - Interconnections Inc. TES - INSTALLATION CHECK/STATUS REPORT
- AH = A0h
- CX = FFFFh
- Return: CF clear if successful
- AX = 5445h ('TE')
- CX <> FFFFh
- DX = port number
- CF set on error
- Program: TES is a network serial port emulation program
- SeeAlso: AH=A1h"TES"
- --------S-14A1-------------------------------
- INT 14 - 3com BAPI SERIAL I/O - DISCONNECT FROM PORT
- AH = A1h
- DH = session ID (00h for external session managment)
- Return: AH = return code (00h,03h,07h,0Ah,0Bh) (see #0320)
- AL destroyed (Novell TELAPI.EXE)
- SeeAlso: AH=A0h"BAPI"
- --------S-14A1-------------------------------
- INT 14 - Interconnections Inc. TES - GET LIST OF SESSIONS WITH STATUS
- AH = A1h
- Return: CX = number of active sessions
- ES:SI -> status array (see #0321)
- SeeAlso: AH=A2h"TES",AH=A3h"TES"
-
- Format of Interconnections TES status array entry:
- Offset Size Description (Table 0321)
- 00h BYTE status
- 01h WORD offset of name
- --------S-14A2-------------------------------
- INT 14 - 3com BAPI SERIAL I/O - WRITE CHARACTER
- AH = A2h
- AL = character
- DH = session ID (00h for external session managment)
- Return: AH = return code (00h,01h,03h,07h,0Ah,0Bh) (see #0320)
- SeeAlso: AH=A0h"BAPI",AH=A3h"BAPI",AH=A4h"BAPI"
- --------S-14A2-------------------------------
- INT 14 - Interconnections Inc. TES - GET LIST OF SERVER NAMES
- AH = A2h
- Return: CX = number of servers
- ES:SI -> array of offsets from ES for server names
- SeeAlso: AH=A1h"TES"
- --------S-14A3-------------------------------
- INT 14 - 3com BAPI SERIAL I/O - READ CHARACTER
- AH = A3h
- DH = session ID (00h for external session managment)
- Return: AH = return code (00h,02h,03h,07h,0Ah,0Bh) (see #0320)
- AL = character read or 00h if none available
- SeeAlso: AH=A0h"BAPI",AH=A2h"BAPI",AH=A5h"BAPI",AH=A7h"BAPI"
- --------S-14A3-------------------------------
- INT 14 - Interconnections Inc. TES - START A NEW SESSION
- AH = A3h
- ES:SI -> ???
- Return: CF clear if successful
- AX = 5445h ('TE')
- CX <> FFFFh
- DX = port number
- CF set on error
- SeeAlso: AH=A1h"TES",AH=A4h"TES",AH=A6h"TES"
- --------S-14A4-------------------------------
- INT 14 - 3com BAPI SERIAL I/O - WRITE BLOCK
- AH = A4h
- CX = length of buffer in bytes
- DH = session ID (00h for external session managment)
- ES:BX -> buffer containing data
- Return: AH = return code (00h,01h,03h,07h,0Ah,0Bh) (see #0320)
- CX = number of bytes actually sent
- SeeAlso: AH=19h,AH=86h,AH=A0h"BAPI",AH=A5h"BAPI"
- --------S-14A4-------------------------------
- INT 14 - Interconnections Inc. TES - HOLD CURRENTLY ACTIVE SESSION
- AH = A4h
- ???
- Return: ???
- SeeAlso: AH=A3h"TES",AH=A5h"TES"
- --------S-14A5-------------------------------
- INT 14 - 3com BAPI SERIAL I/O - READ BLOCK
- AH = A5h
- CX = length of buffer
- DH = session ID (00h for external session managment)
- ES:BX -> buffer for data
- Return: AH = return code (00h,02h,03h,07h,0Ah,0Bh) (see #0320)
- CX = number of bytes actually read
- SeeAlso: AH=18h,AH=83h"COURIERS",AH=A0h"BAPI",AH=A3h"BAPI",AH=A4h"BAPI"
- SeeAlso: AH=A7h"BAPI",AX=FF02h
- --------S-14A5-------------------------------
- INT 14 - Interconnections Inc. TES - RESUME A SESSION
- AH = A5h
- AL = session number
- Return: ???
- SeeAlso: AH=A4h"TES",AH=A6h"TES"
- --------S-14A6-------------------------------
- INT 14 - 3com BAPI SERIAL I/O - SEND SHORT BREAK
- AH = A6h
- DH = session ID (00h for external session managment)
- Return: AH = return code (00h,03h,07h,0Ah,0Bh) (see #0320)
- Desc: generate a short break signal; if data delivery was turned off by the
- break, wait for the host to turn it on again
- SeeAlso: AH=1Ah,AH=8Ah,AH=FAh,AH=A0h"BAPI"
- --------S-14A6-------------------------------
- INT 14 - Interconnections Inc. TES - DROP A SESSION
- AH = A6h
- AL = session number
- Return: AH = status
- 00h successful
- else error
- SeeAlso: AH=A3h"TES",AH=A5h"TES"
- --------S-14A7-------------------------------
- INT 14 - 3com BAPI SERIAL I/O - READ STATUS
- AH = A7h
- DH = session ID (00h for external session managment)
- Return: AH = return code (00h,03h,07h,0Ah,0Bh) (see #0320)
- CX = number of bytes available for reading
- Note: Novell TELAPI.EXE v4.01 always returns either 0 or 1 bytes available
- SeeAlso: AH=A5h"BAPI"
- --------S-14A7-------------------------------
- INT 14 - Interconnections Inc. TES - SWITCH TO NEXT ACTIVE SESSION
- AH = A7h
- ???
- Return: ???
- SeeAlso: AH=A3h"TES",AH=A5h"TES"
- --------S-14A8-------------------------------
- INT 14 - Interconnections Inc. TES - SEND STRING TO COMMAND INTERPRETER
- AH = A8h
- AL = 00h no visible response
- ES:SI -> ASCIZ command
- Return: ???
- --------N-14A8-------------------------------
- INT 14 - Novell TelAPI v4.01 - CONNECTION INFORMATION???
- AH = A8h
- DH = session ID???
- CH = subfunction
- 02h ???
- 0Dh ???
- 0Fh ???
- 10h ???
- 11h ???
- 28h ???
- else
- Return: AH = 09h (not supported)
- Return: AH = return code (see #0320)
- 00h successful
- CL = ??? (0/1/8) (subfunctions 02h,0Dh,0Fh,10h)
- CL = ??? (7Fh/FFh) (subfunction 28h)
- CX = ??? (subfunction 11h)
- SeeAlso: AH=A9h"TelAPI"
- --------N-14A9-------------------------------
- INT 14 - Novell TelAPI v4.01 - CONNECTION CONTROL???
- AH = A9h
- DH = session ID???
- CH = subfunction
- 02h ???
- 0Dh ???
- 0Fh ???
- 10h ???
- 11h ???
- 28h ???
- else
- Return: AH = 09h (not supported)
- ???
- Return: AH = return code (see #0320)
- ???
- SeeAlso: AH=A8h"TelAPI",AH=E4h,INT 6B/AX=0600h
- --------V-14AA01-----------------------------
- INT 14 - DimVGA v2.0+ - INSTALLATION CHECK
- AX = AA01h
- Return: AX = FFFFh if installed, unchanged
- BX = version (v1.5+ only), BH = major, BL = minor (v1.5 = 0105h)
- CX = resident segment (v3.1+)
- Program: DimVGA is a public domain screen saver by Menno Pieters
- SeeAlso: AX=AA02h,AX=AA03h,AX=AA06h,INT 11/AX=0225h/BX=6900h,INT 12"KEYBUI"
- SeeAlso: INT 2D/AL=10h"Burnout Plus",INT 2F/AX=6400h,INT 2F/AH=93h
- SeeAlso: INT 2F/AX=C000h"VGAsave",INT 2F/AX=C000h"AD-DOS",INT 2F/AX=C050h
- SeeAlso: INT 2F/AX=E300h
- Index: screen saver;DimVGA
- --------V-14AA02-----------------------------
- INT 14 - DimVGA v2.0+ - SET TIME-OUT (DIMMING/BLANKING) PERIOD
- AX = AA02h
- BX = number of clock ticks
- Return: AX = FFFFh
- Note: on screen modes with 256 or less colors DimVGA will dim the screen,
- when more than 256 colors can be used DimVGA will blank the screen.
- SeeAlso: AX=AA01h,AX=AA03h,AX=AA04h,AX=AA06h
- Index: screen saver;DimVGA
- --------V-14AA03-----------------------------
- INT 14 - DimVGA v2.0+ - SET DIMMING FACTOR
- AX = AA03h
- BX = percentage remaining visible (1-99)
- Return: AX = FFFFh
- SeeAlso: AX=AA02h,AX=AA05h,AX=AA06h
- Index: screen saver;DimVGA
- --------V-14AA04-----------------------------
- INT 14 - DimVGA v2.0+ - GET TIME-OUT PERIOD
- AX = AA04h
- Return: AX = FFFFh
- BX = current time-out in clock ticks
- SeeAlso: AX=AA02h,AX=AA05h,AX=AA0Ah
- Index: screen saver;DimVGA
- --------V-14AA05-----------------------------
- INT 14 - DimVGA v2.0+ - GET DIMMING FACTOR
- AX = AA05h
- Return: AX = FFFFh
- BX = current dimming factor
- SeeAlso: AX=AA03h,AX=AA04h,AX=AA0Ah
- Index: screen saver;DimVGA
- --------V-14AA06-----------------------------
- INT 14 - DimVGA v2.0+ - DISABLE
- AX = AA06h
- Return: AX = FFFFh
- SeeAlso: AX=AA01h,AX=AA07h,AX=AA0Ah
- Index: screen saver;DimVGA
- --------V-14AA07-----------------------------
- INT 14 - DimVGA v2.0+ - ENABLE
- AX = AA07h
- Return: AX = FFFFh
- SeeAlso: AX=AA01h,AX=AA06h,AX=AA0Ah
- Index: screen saver;DimVGA
- --------V-14AA08-----------------------------
- INT 14 - DimVGA v2.0+ - DIM SCREEN 'MANUALLY'
- AX = AA08h
- Return: AX = FFFFh
- Note: this function will dim the screen immediately, even if DimVGA is
- currently disabled
- SeeAlso: AX=AA01h,AX=AA02h,AX=AA09h
- Index: screen saver;DimVGA
- --------V-14AA09-----------------------------
- INT 14 - DimVGA v2.0+ - UNDIM SCREEN 'MANUALLY'
- AX = AA09h
- Return: AX = FFFFh
- Note: this function will undim the screen immediately, even if DimVGA is
- currently disabled
- SeeAlso: AX=AA01h,AX=AA08h
- Index: screen saver;DimVGA
- --------V-14AA0A-----------------------------
- INT 14 - DimVGA v2.0+ - CHECK WHETHER ENABLED
- AX = AA0Ah
- Return: AX = FFFFh
- BX = current state (0000h disabled, 0001h enabled)
- SeeAlso: AX=AA01h,AX=AA06h,AX=AA07h
- Index: screen saver;DimVGA
- --------V-14AA0B-----------------------------
- INT 14 - DimVGA v2.1+ - SET HOTKEY
- AX = AA0Bh
- BH = shift state (see #0322)
- BL = keyboard scancode
- Return: AX = FFFFh
- SeeAlso: AX=AA01h,AX=AA0Ch
- Index: screen saver;DimVGA
-
- Bitfields for DimVGA hotkey shift state:
- Bit(s) Description (Table 0322)
- 7-4 unused
- 3 Alt key pressed
- 2 Ctrl key pressed
- 1 Left shift key pressed
- 0 Right shift key pressed
- --------V-14AA0C-----------------------------
- INT 14 - DimVGA v2.1+ - GET HOTKEY
- AX = AA0Ch
- Return: AX = FFFFh
- BH = shift state (see #0322)
- BL = keyboard scancode
- SeeAlso: AX=AA01h,AX=AA0Bh
- Index: screen saver;DimVGA
- --------V-14AA0D-----------------------------
- INT 14 - DimVGA v3.0+ - SET MOUSE CHECK STATUS
- AX = AA0Dh
- BX = new mouse check status
- 0000h mouse checking off
- 0001h mouse checking on
- Return: AX = FFFFh
- Note: before switching mouse checking on, a mouse driver should be
- found in memory. If no mouse driver is found, mouse checking
- should be switched off (resident DimVGA does not check by itself).
- SeeAlso: AX=AA01h,AX=AA0Eh
- Index: screen saver;DimVGA
- --------V-14AA0E-----------------------------
- INT 14 - DimVGA v3.0+ - GET MOUSE CHECK STATUS
- AX = AA0Eh
- Return: BX = mouse check status (0000h disabled, 0001h enabled)
- SeeAlso: AX=AA01h,AX=AA0Dh
- Index: screen saver;DimVGA
- --------V-14AA0F-----------------------------
- INT 14 - DimVGA v3.4 - SET LOCKING STATUS
- AX = AA0Fh
- BX = locking status
- 0000h disabled
- 0001h enabled
- Return: AX = FFFFh
- SeeAlso: AX=AA01h,AX=AA0Dh,AX=AA10h
- Index: screen saver;DimVGA
- --------V-14AA10-----------------------------
- INT 14 - DimVGA v3.4 - GET MOUSE CHECK STATUS
- AX = AA10h
- Return: BX = locking status (0000h disabled, 0001h enabled)
- SeeAlso: AX=AA01h,AX=AA0Dh,AX=AA0Fh
- Index: screen saver;DimVGA
- ----------14AD-------------------------------
- INT 14 - IBM SurePath BIOS - Officially "Private" Function
- AH = ADh
- SeeAlso: AH=AEh"IBM",AH=AFh"IBM"
- ----------14AE-------------------------------
- INT 14 - IBM SurePath BIOS - Officially "Private" Function
- AH = AEh
- SeeAlso: AH=ADh"IBM",AH=AFh"IBM"
- ----------14AF-------------------------------
- INT 14 - IBM SurePath BIOS - Officially "Private" Function
- AH = AFh
- SeeAlso: AH=ADh"IBM",AH=AEh"IBM"
- --------S-14AF00BXAAAA-----------------------
- INT 14 - 3com BAPI SERIAL I/O - INSTALLATION CHECK
- AX = AF00h
- BX = AAAAh
- Return: AX = AF01h if installed
- BH = protocol type (if BX=AAAAh on entry)
- 01h NetManage TCP/IP
- BL = version for protocol type (if BX=AAAAh on entry)
- Note: early versions of the BAPI and the ROM BIOS simply destroy AX; this
- behavior is used to determine whether the newer functions (AH=B0h,
- AH=B1h,etc) are available
- SeeAlso: AH=A0h"BAPI"
- --------S-14B0-------------------------------
- INT 14 - 3com BAPI SERIAL I/O - EN/DISABLE "ENTER COMMAND MODE" (ECM) CHARACTER
- AH = B0h
- AL = new state (00h disabled, 01h enabled)
- Return: AH = return code (00h,07h,0Ah) (see #0320)
- Note: disabling the ECM character allows applications to send data which
- includes the ECM character
- SeeAlso: AX=AF00h"BAPI",AH=B1h,AH=B2h
- --------S-14B1-------------------------------
- INT 14 - 3com BAPI SERIAL I/O - ENTER COMMAND MODE
- AH = B1h
- Return: AH = return code (00h,07h,0Ah) (see #0320)
- Desc: provide a means for the application or terminal emulator to perform
- the same action normally caused by the ECM character
- SeeAlso: AH=B0h,AH=B2h
- --------S-14B2-------------------------------
- INT 14 - 3com BAPI SERIAL I/O - GET ECM WATCH STATE
- AH = B2h
- Return: AH = return code (00h,07h,0Ah) (see #0320)
- AL = watch flag (00h disabled, 01h enabled)
- Desc: determine whether the ECM character is enabled
- SeeAlso: AH=B0h,AH=B1h
- --------S-14B3-------------------------------
- INT 14 - 3com BAPI SERIAL I/O - GET/SET CONFIGURATION INFO
- AH = B3h
- AL = direction (00h get, 01h set)
- DH = session ID (00h for external session managment)
- DL = configuration item (00h = end-of-line mapping)
- CX = new configuration item value (if AL=01h)
- ---if DL=00h---
- CH = application EOL type (app to Telnet client)
- 01h application will send lone CR
- 02h application will send CR-? pair
- CL = driver EOL type (Telnet client to Telnet server)
- 01h driver should send CR-NUL pair
- 02h driver should send CR-LF pair
- Return: AH = return code (00h,03h,09h-0Bh) (see #0320)
- ---if AL=00h---
- CX = configuration item value (above)
- SeeAlso: AH=B2h
- --------N-14E0-------------------------------
- INT 14 - TelAPI - "telopen" - CREATE TELNET CONNECTION (BLOCKING)
- AH = E0h
- BX = port number to connect with (default 0017h used if <= 0)
- CX:DX = Internet address of remote host
- DS:DI -> 2-byte remote host (session) identifier
- ES:SI -> 1700-byte buffer for Telnet state record
- 0000h:0000h to use TelAPI internally-allocated space
- Return: AX = status (0000h-0009h,FED3h,FF37h,FFBDh,FFC0h,FFCDh) (see #0323)
- ES:SI buffer filled with state record
- ES:SI -> internally-allocated state record in some versions
- Note: the remote host identifier may be used to refer to this connection
- SeeAlso: AH=E1h,AH=ECh,AX=FF00h
-
- (Table 0323)
- Values for TelAPI status:
- 0000h-7FFFh successful (session number)
- FED3h (-301) no session allocated, or out of TelAPI data space
- FF37h (-201) all sessions in use
- FFBDh (-67) unknown hostname
- FFC0h (-64) host not functioning
- FFC3h (-61) connection attempt refused
- FFC4h (-60) connection attempt timed out
- FFC8h (-56) socket already connected
- FFCDh (-51) network is unreachable
- FFDDh (-35) operation would block
- --------S-14E000-----------------------------
- INT 14 - MX5 Extended FOSSIL - GET MNP STATUS BLOCK
- AX = E000h
- DX = port number (0-3)
- Return: ES:BX -> status block (see #0324)
- Program: MX5 is a FOSSIL driver by MagicSoft which emulates MNP Level 5, and
- ships with the MTEZ terminal program as MTEMNP.DRV (a TSR despite
- the .DRV extension)
- SeeAlso: AX=E006h
-
- Format of MX5 Extended FOSSIL status block:
- Offset Size Description (Table 0324)
- 00h BYTE flag: active (00h no, 01h yes)
- 01h BYTE MNP level (2,4,5)
- 02h BYTE series ID from remote MNP
- 03h DWORD total packets transmitted
- 07h DWORD duplicate packets transmitted
- 0Bh DWORD maximum speed
- 0Fh DWORD total packets received
- 13h DWORD duplicate packets received
- 17h DWORD maximum speed
- --------S-14E001-----------------------------
- INT 14 - MX5 Extended FOSSIL - GET/SET MNP LEVEL
- AX = E001h
- BH = function
- 00h get MNP level
- 01h set MNP level
- BL = new level (00h none, 02h/04h/05h MNP level N)
- DX = port number (0-3)
- Return: BL = MNP level
- SeeAlso: AX=E002h,AX=E003h,AX=E004h,AX=E006h
- --------S-14E002-----------------------------
- INT 14 - MX5 Extended FOSSIL - GET/SET MNP ANSWER/ORIGINATE MODE
- AX = E002h
- BH = function
- 00h get answer/originate mode
- 01h set mode
- BL = new mode (00h originate [default], 01h answer)
- DX = port number (0-3)
- Return: BL = answer/originate mode
- SeeAlso: AX=E001h,AX=E003h,AX=E006h
- --------S-14E003-----------------------------
- INT 14 - MX5 Extended FOSSIL - GET/SET MNP WAIT TICKS
- AX = E003h
- BH = function
- 00h get wait ticks
- 01h set wait ticks
- BL = MNP wait ticks (default 0Eh)
- DX = port number (0-3)
- Return: BL = wait ticks
- SeeAlso: AX=E001h,AX=E002h,AX=E006h
- --------S-14E004-----------------------------
- INT 14 - MX5 Extended FOSSIL - GET/SET MNP CONNECT SOUND LEVEL
- AX = E004h
- BH = function
- 00h get sound level
- 01h set sound level
- BL = new sound level (00h off, 01h on [default])
- DX = port number
- Return: BL = sound state
- Desc: specify whether MX5 should generate beeps after an MNP connection
- (three high beeps if successful, high then low on connection failure)
- SeeAlso: AX=E002h,AX=E006h
- --------S-14E005-----------------------------
- INT 14 - MX5 Extended FOSSIL - UNINSTALL
- AX = E005h
- Return: BX = segment of MX5's memory block or 0000h on failure
- Note: caller must free the returned memory block to complete the uninstall
- SeeAlso: AX=E006h
- --------S-14E006BX0000-----------------------
- INT 14 - MX5 Extended FOSSIL - INSTALLATION CHECK
- AX = E006h
- BX = 0000h
- Return: BX = 4D58h ('MX') if installed
- AH = major version
- AL = minor version
- SeeAlso: AX=E000h,AX=E001h,AX=E005h,AX=E007h
- --------S-14E007-----------------------------
- INT 14 - MX5 Extended FOSSIL - WAIT SPECIFIED NUMBER OF TICKS
- AX = E007h
- CX = number of ticks to wait
- Return: nothing
- SeeAlso: AX=E006h
- --------N-14E1-------------------------------
- INT 14 - TelAPI - "telclose" - TERMINATE TELNET CONNECTION
- AH = E1h
- BX = connection ID
- Return: AX = status (0000h,FFF7h,maybe others) (see #0323)
- Note: flushes and releases all buffers and data space used by the connection
- SeeAlso: AH=E0h,AH=E6h,AX=FF00h
- --------N-14E2-------------------------------
- INT 14 - TelAPI - "telread" - BUFFERED READ
- AH = E2h
- BX = connection ID (see AH=E0h"TelAPI")
- CX = length of buffer in bytes
- ES:SI -> buffer for data
- Return: AX > 0000h number of characters actually read
- AX = 0000h host has closed connection
- AX < 0000h error code (see #0323)
- Note: translates CRLF into local EOL if the connection is in ASCII mode,
- negotiates various Telnet options, and immediately executes several
- different Telnet action commands
- SeeAlso: AH=07h"TelAPI",AH=E3h,AH=E6h,AX=FF00h,INT 6B/AH=01h
- --------N-14E3-------------------------------
- INT 14 - TelAPI - "telwrite" - BUFFERED WRITE
- AH = E3h
- BX = connection ID
- CX = length of buffer in bytes
- ES:SI -> buffer containing data
- Return: AX > 0000h number of characters actually written
- AX < 0000h error code (see #0323)
- Note: translates local EOL into CRLF if the connection is in ASCII mode,
- sends the appropriate Telnet commands for the characters selected
- for IP, AYT, AO, EC, EL, and Break
- SeeAlso: AH=06h"TelAPI",AH=E2h,AH=E6h,AX=FF00h,INT 6B/AH=00h
- --------N-14E4-------------------------------
- INT 14 - TelAPI - "telioctl" - CONNECTION CONTROL
- AH = E4h
- BX = connection ID (see AH=E0h"TelAPI")
- CX = Telnet command/option identifier (see #0326)
- ES:SI -> buffer containing command/option argument (see #0325)
- Return: AX = status (0000h, etc.) (see #0323)
- Desc: start filter control, initiate Telnet option negotiation, or get filter
- control status
- SeeAlso: AH=A9h,AH=E6h,AX=FF00h,INT 6B/AX=0600h
-
- Format of TelAPI Telnet command/option argument:
- Offset Size Description (Table 0325)
- 00h 5 WORD numeric arguments
- 0Ah DWORD -> ASCIZ string
- SeeAlso: #0326
-
- (Table 0326)
- Values for TelAPI Telnet command/option identifier:
- 01h ASCII args: none
- 02h BINARY args: none
- 03h LOCALECHO args: none client echos data
- 04h REMOTEECHO args: none server echos data
- 05h SGA args: none Suppress Go-Ahead signal
- 07h CHARMODE args: none no line-buffering
- 08h LINEMODE args: -> erase-line ch perform line-buffering
- 09h RECVEOL args: EOL type
- 0Ah SENDEOL args: EOL type
- 0Bh EOR args: none enable end-of-record sequence
- 0Dh BREAK args: -> break char
- 0Eh VERBOSE args: verbosity display Telnet negotiations?
- 0Fh AYT args: -> AYT escape ch
- 10h AO args: -> AO escape char
- 11h IP args: -> IP escape char
- 12h EC args: -> escape char
- 13h EL args: -> escape char
- 14h STATUS args: type; returns data in structure
- 18h TERMTYPE args: -> terminal type
- 19h ATTACHPORT args: port number ; returns session number
- 1Bh TRANSMIT_EOR args: EOR enabled append EOR to every telwrite?
- SeeAlso: #0325
- --------N-14E5-------------------------------
- INT 14 - TelAPI - "telreset" - RESET ALL CONNECTIONS
- AH = E5h
- Return: AX = status (0000h,other) (see also #0323)
- FFFFh unable to reset
- Desc: close all sessions and reset TelAPI to defaults
- SeeAlso: AH=E1h,AH=E6h,AX=FF00h
- --------N-14E6-------------------------------
- INT 14 - TelAPI - "telunload" - UNINSTALL
- AH = E6h
- Return: AX = status
- 0000h successful
- FFFFh unable to uninstall
- Notes: TelAPI also supports the NASI/NACS and NCSI APIs on INT 6B
- this function invokes AH=E5h internally
- SeeAlso: AH=E5h,AX=FF00h,INT 6B/AH=00h,INT 6B/AH=10h
- --------N-14E7-------------------------------
- INT 14 - TelAPI - "tellist" - GET TELNET SESSION LIST
- AH = E7h
- ES:SI -> 10-word buffer for session list
- Return: AX = 0000h (successful)
- ES:SI buffer filled
- Desc: determine, for each of the ten allowable sessions, whether the session
- is currently available
- Note: each word in the buffer is filled with either 0000h to indicate that
- the corresponding sesion is unavailable, or 0001h if available
- SeeAlso: AH=E0h,AH=E5h,AX=FF00h
- --------N-14E8-------------------------------
- INT 14 - TelAPI - "telattach" - ATTACH COM PORT TO/FROM TELNET SESSION
- AH = E8h
- BX = connection ID (see AH=E0h"TelAPI")
- CX = serial port number (0000h-0003h = COM1-COM4)
- Return: AX = status
- 0000h successful
- FFFFh failed
- SeeAlso: AH=E0h,AH=E9h,AX=FF00h
- --------N-14E9-------------------------------
- INT 14 - TelAPI - "telportosn" - GET SESSION NUMBER FOR COM PORT
- AH = E9h
- DX = serial port number (0000h-0003h = COM1-COM4)
- Return: AX >= 0000h session number
- AX < 0000h error code (see #0323)
- SeeAlso: AH=E0h,AH=E8h,AH=EAh,AX=FF00h
- --------N-14EA-------------------------------
- INT 14 - TelAPI - "telstatus" - GET TELNET CONNECTION STATUS INFORMATION
- AH = EAh
- BX = connection ID (see AH=E0h"TelAPI")
- ES:SI -> buffer for status info (see #0327)
- Return: AX = status (0000h,FFFFh,etc.)
- SeeAlso: AH=E9h,AH=EBh,AX=FF00h
-
- Format of TelAPI Telnet connection status information:
- Offset Size Description (Table 0327)
- 00h 4 BYTEs remote host IP address
- 04h 20 BYTEs reserved
- 18h WORD local port number
- 1Ah BYTE connection mode (00h = ASCII, 01h = Binary)
- 1Bh BYTE echo flag (00h local, 01h remote)
- 1Ch BYTE SGA flag (00h will, 01h won't)
- 1Dh BYTE EOR negotation flag (00h do negotiate, 01h don't)
- 1Eh BYTE buffering (00h line mode, 01h character mode)
- 1Fh BYTE reserved
- 20h BYTE verbose flag (00h no, 01h verbose mode)
- 21h BYTE received EOL (00h no xlat, 01h CR, 02h LF, 03h CRLF)
- 22h BYTE sent EOL (00h no translation, 01h CR, 02h LF)
- 23h BYTE break character
- 24h BYTE IP escape character
- 25h BYTE AO escape character
- 26h BYTE AYT escape character
- 27h BYTE EC escape character
- 28h BYTE EL escape character
- 29h 41 BYTEs ASCIZ Telnet-negotiated terminal type
- 52h 9 BYTEs session ID
- SeeAlso: #0328
- --------N-14EB-------------------------------
- INT 14 - TelAPI - "telname" - GET AVAILABLE/INUSE STATUS FOR ALL SESSIONS
- AH = EBh
- ES:SI -> buffer for session statuses (see #0328)
- Return: ES:SI buffer filled
- SeeAlso: AH=E9h,AH=EAh,AX=FF00h
-
- Format of TelAPI session status information [array]:
- Offset Size Description (Table 0328)
- 00h BYTE session state (00h available, 01h connected)
- 01h 9 BYTEs session ID if connected
- 0Ah WORD attached COM port if connected, FFFFh if not
- SeeAlso: #0327
- --------N-14EC-------------------------------
- INT 14 - TelAPI - "telnblkopen" - CREATE TELNET CONNECTION (NON-BLOCKING)
- AH = ECh
- BX = port number to connect with (default 0017h used if <= 0)
- CX:DX = Internet address of remote host
- DS:DI -> 2-byte remote host (connection) identifier
- ES:SI -> 1700-byte buffer for Telnet state record
- 0000h:0000h to use TelAPI internally-allocated space
- Return: AX = status (0000h-0009h,FED3h,FF37h,FFBDh,FFC0h,FFCDh) (see #0323)
- ES:SI buffer filled with state record
- ES:SI -> internally-allocated state record in some versions
- Notes: the remote host identifier may be used to refer to this connection
- this function returns immediately; use AH=EDh to check whether the
- connection has been established yet
- this function is not supported by the Microdyne TelAPI v3.7
- SeeAlso: AH=E0h"TelAPI",AH=EDh,AX=FF00h
- --------N-14ED-------------------------------
- INT 14 - TelAPI - "telpoll" - POLL TELNET SESSION FOR CONNECTION COMPLETION
- AH = EDh
- BX = connection ID (see AH=ECh)
- Return: AX = status (0000h,0001h,FFFFh,etc.) (see also #0323)
- 0000h session now connected
- 0001h connection still in progress
- Note: this function is not supported by the Microdyne TelAPI v3.7
- SeeAlso: AH=EDh,AX=FF00h
- --------a-14F0F0-----------------------------
- INT 14 - ASAP v1.0 - ???
- AX = F0F0h
- DX = ???
- ???
- Return: ???
- Program: ASAP (Automatic Screen Access Program) is a shareware screen reader
- by MicroTalk
- SeeAlso: AX=F0F1h
- --------a-14F0F1DX0000-----------------------
- INT 14 - ASAP v1.0 - INSTALLATION CHECK
- AX = F0F1h
- DX = 0000h
- Return: DX = segment of resident code
- 0000h if not installed
- Program: ASAP (Automatic Screen Access Program) is a shareware screen reader
- by MicroTalk
- SeeAlso: AX=F0F0h,INT 10/AX=3800h
- --------S-14F4FF-----------------------------
- INT 14 - IBM/Yale EBIOS SERIAL I/O - INSTALLATION CHECK
- AX = F4FFh
- DX = port (00h-03h)
- Return: CF clear if present
- AX = 0000h
- CF set if not present
- AX <> 0000h
- SeeAlso: AH=36h"ComShare",AH=F9h,AH=FCh
- --------S-14F9-------------------------------
- INT 14 - IBM/Yale EBIOS SERIAL I/O - REGAIN CONTROL
- AH = F9h
- DX = port (00h-03h)
- Return: nothing
- SeeAlso: AX=F4FFh
- --------S-14FA-------------------------------
- INT 14 - IBM/Yale EBIOS SERIAL I/O - SEND BREAK
- AH = FAh
- DX = port (00h-03h)
- Return: nothing
- SeeAlso: AH=07h"MBBIOS",AH=1Ah,AH=8Ah
- --------S-14FB-------------------------------
- INT 14 - IBM/Yale EBIOS SERIAL I/O - SET OUTGOING MODEM SIGNALS
- AH = FBh
- AL = modem control register (see #0260 at AH=05h"SERIAL")
- DX = port (00h-03h)
- Return: nothing
- SeeAlso: AH=05h"SERIAL"
- --------S-14FC-------------------------------
- INT 14 - IBM/Yale EBIOS SERIAL I/O - READ CHARACTER, NO WAIT
- AH = FCh
- DX = port (00h-03h)
- Return: AH = RS232 status bits (see #0230 at AH=03h)
- AL = character
- SeeAlso: AH=02h,AH=0Ch,AX=FF02h
- --------S-14FD02-----------------------------
- INT 14 - IBM/Yale EBIOS SERIAL I/O - READ STATUS
- AX = FD02h
- Return: CX = number of characters available
- --------N-14FF00-----------------------------
- INT 14 - TelAPI - "telcheck" - INSTALLATION CHECK
- AX = FF00h
- Return: AX = 00FFh if installed
- BX = version number * 100 (decimal)
- SeeAlso: AH=E6h,AX=F4FFh
- --------S-14FF01-----------------------------
- INT 14 - IBM/Yale EBIOS SERIAL I/O - SET SEND BUFFER
- AX = FF01h
- CX = length of buffer (0000h to cancel buffer assignment)
- DX = port (00h-03h)
- ES:BX -> send buffer
- Return: nothing
- SeeAlso: AH=18h,AH=83h"COURIERS",AH=A5h"BAPI",AH=FCh,AX=FF02h
- --------S-14FF02-----------------------------
- INT 14 - IBM/Yale EBIOS SERIAL I/O - SET RECEIVE BUFFER
- AX = FF02h
- CX = length of buffer (0000h to cancel buffer assignment)
- DX = port (00h-03h)
- ES:BX -> receive buffer
- Return: nothing
- SeeAlso: AH=18h,AH=83h"COURIERS",AH=A5h"BAPI",AH=FCh,AX=FF01h
- --------S-14FFF8-----------------------------
- INT 14 - COMM-DRV v14.0 - SET BAUD RATE DIVISOR
- AX = FFF8h
- BX = card type (sub-device number)
- CX = new baudrate divisor
- DX = index to baud rate
- Return: AH bit 7 set on error
- AH bit 7 clear if successful
- Program: COMM-DRV is a universal serial communications driver by Willies'
- Computer Software Company, which supports standard INT 14 and
- FOSSIL calls as well as its own interfaces
- SeeAlso: AX=8000h"COMM-DRV"
- --------S-14FFFB-----------------------------
- INT 14 - COMM-DRV v14.0 - GET HIGHEST ALLOWED PORT NUMBER
- AX = FFFBh
- DX = port number
- Return: AH bit 7 set on error
- AH bit 7 clear if successful
- BX = highest port number
- --------S-14FFFC-----------------------------
- INT 14 - COMM-DRV v14.0 - GET INT 14 FLAGS
- AX = FFFCh
- DX = port number
- Return: AH bit 7 set on error
- AH bit 7 clear if successful
- BX = flags (see #0329)
- SeeAlso: AX=FFFDh
-
- Bitfields for INT 14h flags:
- Bit(s) Description (Table 0329)
- 0 port active for INT 14h
- 1 interface behaving like a FOSSIL driver
- --------S-14FFFD-----------------------------
- INT 14 - COMM-DRV v14.0 - SET INT 14 FLAGS
- AX = FFFDh
- BX = flags (see #0329)
- DX = port number
- Return: AH bit 7 set on error
- AH bit 7 clear if successful
- SeeAlso: AX=FFFCh
- --------S-14FFFE-----------------------------
- INT 14 - COMM-DRV v14.0 - RESTORE INT 14 VECTOR TO ORIGINAL
- AX = FFFEh
- Return: AH bit 7 set on error
- AH bit 7 clear if successful
- --------S-14FFFF-----------------------------
- INT 14 - COMM-DRV v14.0 - GET INT 14 INFORMATION AREA
- AX = FFFFh
- BX:SI -> DWORD buffer for address of information area (see #0330)
- (initialized to zeros)
- Return: BX:SI buffer filled with nonzero value if installed
- Program: COMM-DRV is a universal serial communications driver by Willies'
- Computer Software Company, which supports standard INT 14 and
- FOSSIL calls as well as its own interfaces
- Index: installation check;COMM-DRV
-
- Format of COMM-DRV information area:
- Offset Size Description (Table 0330)
- 00h 8 BYTEs signature "COMM-DRV"
- 08h 2 BYTEs 00h,00h
- 0Ah DWORD -> direct address mapping table
- 0Eh DWORD previous INT 14 vector
- --------t-15---------------------------------
- INT 15 - Microsoft TSR Specification
- No additional information available at this time.
- --------B-1500-------------------------------
- INT 15 - CASSETTE - TURN ON TAPE DRIVE'S MOTOR (PC and PCjr only)
- AH = 00h
- Return: CF set on error
- AH = 86h no cassette present
- CF clear if successful
- SeeAlso: AH=01h"CASSETTE",MEM 0040h:0067h"PC"
- --------M-1500-------------------------------
- INT 15 - Amstrad PC1512 - GET AND RESET MOUSE COUNTS
- AH = 00h
- Return: CX = signed X count
- DX = signed Y count
- --------O-1500-------------------------------
- INT 15 - VMiX v2+ - INSTALLATION CHECK
- AH = 00h
- Return: DX = 0798h if installed
- AX = version (AH = major, AL = minor)
- --------T-1500-------------------------------
- INT 15 - MultiDOS Plus - GIVE UP TIME SLICE
- AH = 00h
- Return: nothing
- Note: if issued by the highest-priority task while MultiDOS is using
- priority-based rather than round-robin scheduling, control will be
- returned to the caller immediately
- SeeAlso: AH=03h"MultiDOS",AX=1000h
- --------B-1501-------------------------------
- INT 15 - CASSETTE - TURN OFF TAPE DRIVE'S MOTOR (PC and PCjr only)
- AH = 01h
- Return: CF set on error
- AH = 86h no cassette present
- CF clear if successful
- SeeAlso: AH=00h"CASSETTE"
- --------b-1501-------------------------------
- INT 15 - Amstrad PC1512 - WRITE DATA TO NON-VOLATILE RAM
- AH = 01h
- AL = NVRAM location (00h to 3Fh) (see #0331)
- BL = NVRAM data value
- Return: AH = return code
- 00h OK
- 01h address bad
- 02h write error
- SeeAlso: AH=02h"Amstrad"
-
- Format of Amstrad NVRAM:
- Offset Size Description (Table 0331)
- 00h BYTE time of day: seconds
- 01h BYTE alarm time: seconds
- 02h BYTE time of day: minutes
- 03h BYTE alarm time: minutes
- 04h BYTE time of day: hours
- 05h BYTE alarm time: hours
- 06h BYTE day of week, 1 = Sunday
- 07h BYTE day of month
- 08h BYTE month
- 09h BYTE year mod 100
- 0Ah BYTE RTC status register A (see #0332)
- 0Bh BYTE RTC status register B (see #0333)
- 0Ch BYTE RTC status register C (read-only) (see #0334)
- 0Dh BYTE RTC status register D
- bit 7: battery good
- 0Eh 6 BYTEs time and date machine last used
- 14h BYTE user RAM checksum
- 15h WORD Enter key scancode/ASCII code
- 17h WORD Forward delete key scancode/ASCII code
- 19h WORD Joystick fire button 1 scancode/ASCII code
- 1Bh WORD Joystick fire button 2 scancode/ASCII code
- 1Dh WORD mouse button 1 scancode/ASCII code
- 1Fh WORD mouse button 2 scancode/ASCII code
- 21h BYTE mouse X scaling factor
- 22h BYTE mouse Y scaling factor
- 23h BYTE initial VDU mode and drive count
- 24h BYTE initial VDU character attribute
- 25h BYTE size of RAM disk in 2K blocks
- 26h BYTE initial system UART setup byte
- 27h BYTE initial external UART setup byte
- 28h 24 BYTEs available for user application
- Note: bytes 00h-0Dh are the same on the IBM AT as they are used/updated by
- the clock chip
-
- Bitfields for RTC status register A:
- Bit(s) Description (Table 0332)
- 7 set if date/time being updated
- 6-4 time base speed, default 010 = 32768 Hz
- 3-0 interrupt rate selection, default 0110 = 1024 Hz
- SeeAlso: #0331
-
- Bitfields for RTC status register B:
- Bit(s) Description (Table 0333)
- 7 clear if normal update, set if abort update
- 6 periodic interrupt enable
- 5 alarm interrupt enable
- 4 update end interrupt enable
- 3 square wave enable
- 2 date mode (clear = BCD, set = binary)
- 1 24-hour format
- 0 daylight saving time enable
- SeeAlso: #0331
-
- Bitfields for RTC status register C:
- Bit(s) Description (Table 0334)
- 7 IRQF flag
- 6 PF flag
- 5 AF flag
- 4 UF flag
- SeeAlso: #0331
- --------O-1501-------------------------------
- INT 15 - VMiX - "sys_chanreq" - I/O CHANNEL OBJECT MANAGER
- AH = 01h
- STACK: WORD object ID of requestor
- DWORD pointer to ASCIZ name of requested method
- "assign" assign channel to object
- "deassign" deassign channel
- "cursor" set cursor on/off
- "init" initialize comm port
- "open" open I/O channel
- "position" set cursor position
- "receive" get buffered packet from comm port
- "send" send buffered packet to comm port
- "vio" set current virtual I/O to specified channel
- "window" make window at cursor position
- ---if "assign"---
- WORD object UID
- WORD caller UID/PID
- DWORD CSL with port
- ---if "deassign"---
- WORD channel ID
- ---if "cursor"---
- WORD channel ID (must be a SRCSINK)
- WORD new state (0000h off, 0001h on)
- ---if "init"---
- WORD channel ID (must be a SRCSINK)
- WORD comm port number (00h-03h)
- WORD UART init code
- ---if "open"---
- WORD channel ID
- ---if "position"---
- WORD channel ID (must be a SRCSINK)
- WORD position (high byte = row, low byte = column)
- ---if "receive"---
- DWORD pointer to buffer
- ---if "send"---
- WORD length of buffer
- DWORD pointer to buffer
- ---if "vio"---
- WORD channel ID (must be a SRCSINK)
- ---if "window"---
- WORD top left (high byte = row, low byte = column)
- WORD bottom right (high byte = row, low byte = column)
- Return: DX:AX -> IRP structure or 0000h:0000h
- SeeAlso: AH=00h"VMiX",AH=02h"VMiX"
- --------T-1501-------------------------------
- INT 15 - MultiDOS Plus - REQUEST RESOURCE SEMAPHORE
- AH = 01h
- AL = semaphore number (00h-3Fh)
- Return: AH = status
- 00h successful
- 02h invalid semaphore number
- Notes: if the semaphore is not owned, ownership is assigned to the calling
- task and the call returns immediately
- if the semaphore is already owned by another task, the calling task
- is placed on a queue for the semaphore and suspended until it can
- become owner of the semaphore
- semaphore 0 is used internally by MultiDOS to synchronize DOS access
- SeeAlso: AH=02h"MultiDOS",AH=10h"MultiDOS",AH=1Bh"MultiDOS"
- --------B-1502-------------------------------
- INT 15 - CASSETTE - READ DATA (PC and PCjr only)
- AH = 02h
- CX = number of bytes to read
- ES:BX -> buffer
- Return: CF clear if successful
- DX = number of bytes read
- ES:BX -> byte following last byte read
- CF set on error
- AH = status (see #0335)
- SeeAlso: AH=00h"CASSETTE",AH=03h"CASSETTE",MEM 0040h:0069h,MEM 0040h:006Bh"PC"
-
- (Table 0335)
- Values for Cassette status:
- 00h successful
- 01h CRC error
- 02h bad tape signals
- 04h no data
- 80h invalid command
- 86h no cassette present
- --------b-1502-------------------------------
- INT 15 - Amstrad PC1512 - READ DATA FROM NON-VOLATILE RAM
- AH = 02h
- AL = NVRAM location (00h to 3Fh)
- Return: AH = return code
- 00h OK
- 01h address bad
- 02h checksum error
- AL = NVRAM data value
- SeeAlso: AH=01h"Amstrad"
- --------O-1502-------------------------------
- INT 15 - VMiX - "sys_memreq" - MEMORY OBJECT MANAGER
- AH = 02h
- STACK: WORD object ID of requestor
- DWORD pointer to ASCIZ name of requested method
- "assign" allocate low memory block
- "assign extended" allocate extended memory pages
- "assign gdt" allocate GDT selector
- "paged" allocate low paged memory
- "paged extended" alllocate extended memory pages
- "deassign" free memory block
- "deassign gdt" free GDT selector
- "getvpage" get physical address for virtual page
- "setvpage" set physical address for virtual page
- "info" get VMiX memory usage info block
- "move" move contents of 32-bit memory
- "newmcb" make new DOS memory control block
- "owner" get process ID of MCB or PSP owner
- "umb" allocate upper memory block
- "video" toggle system use of video memory and get stat
- ---if "assign"---
- WORD number of objects
- WORD size in bytes (multiple of 512 bytes)
- ---if "assign extended"---
- WORD number of objects
- WORD size in bytes (multiple of 4K)
- ---if "assign gdt"---
- WORD access type (low byte)
- WORD segment size in paragraphs
- DWORD pointer to start of physical segment
- ---if "paged"---
- WORD number of 512-byte pages
- ---if "paged extended"
- WORD number of 4K pages
- ---if "deassign"---
- DWORD pointer returned by previous allocation call
- ---if "deassign gdt"---
- WORD GDT selector
- ---if "getvpage"---
- WORD owner's process ID
- DWORD pointer to buffer for page structure (struct VPGE)
- ---if "setvpage"---
- WORD owner's process ID
- DWORD pointer to new page structure (struct VPGE)
- ---if "info"---
- no additional arguments
- ---if "move"
- DWORD 32-bit source address
- DWORD 32-bit destination address
- WORD number of words to move
- ---if "newmcb"---
- DWORD pointer to new MCB's location
- WORD size of memory block
- DWORD pointer to ASCIZ name string (max 8 chars)
- ---if "owner"---
- WORD MCB or PSP segment
- ---if "umb"---
- WORD size in paragraphs
- ---if "video"---
- no additional arguments
- Return: DX:AX -> memory block or VPGE struct or 0000h:0000h
- SeeAlso: AH=00h"VMiX",AH=01h"VMiX"
- --------T-1502-------------------------------
- INT 15 - MultiDOS Plus - RELEASE RESOURCE SEMAPHORE
- AH = 02h
- AL = semaphore number (00h-3Fh)
- Return: AH = status
- 00h successful
- 01h not semaphore owner
- 02h invalid semaphore number
- Notes: if any tasks are waiting for the semaphore, the first task on the wait
- queue will become the new owner and be reawakened
- do not use within an interrupt handler
- SeeAlso: AH=01h"MultiDOS",AH=10h"MultiDOS",AH=1Ch"MultiDOS"
- --------B-1503-------------------------------
- INT 15 - CASSETTE - WRITE DATA (PC and PCjr only)
- AH = 03h
- CX = number of bytes to write
- ES:BX -> data buffer
- Return: CF clear if successful
- ES:BX -> byte following last byte written
- CF set on error
- AH = status (see #0335)
- CX = 0000h
- SeeAlso: AH=00h"CASSETTE",AH=02h"CASSETTE"
- --------V-1503-------------------------------
- INT 15 - Amstrad PC1512 - WRITE VDU COLOR PLANE WRITE REGISTER
- AH = 03h
- AL = value (I,R,G,B bits)
- Return: nothing
- SeeAlso: AH=04h"Amstrad"
- --------O-1503-------------------------------
- INT 15 - VMiX - "sys_pinput" - PROMPTED CONSOLE INPUT
- AH = 03h
- STACK: DWORD pointer to ASCII prompt
- WORD field outline character
- WORD length of input field (max 7Fh)
- DWORD address of pointer to input buffer
- Return: AX = length of input (input buffer is padded with blanks)
- SeeAlso: AH=04h"VMiX"
- --------T-1503-------------------------------
- INT 15 - MultiDOS Plus - SUSPEND TASK FOR INTERVAL
- AH = 03h
- DX = number of time slices to remain suspended
- Return: after specified interval has elapsed
- Note: when priority-based scheduling is in use, high-priority tasks should
- use this function to yield the processor
- SeeAlso: AH=00h"MultiDOS",AH=0Ah"MultiDOS"
- --------B-1504-------------------------------
- INT 15 - SYSTEM - BUILD ABIOS SYSTEM PARAMETER TABLE (PS)
- AH = 04h
- ES:DI -> 32-byte results buffer for System Parameter Table (see #0336)
- DS = segment containing ABIOS RAM extensions (zero if none)
- Return: CF clear if successful
- AH = 00h success
- ES:DI buffer filled
- AL destroyed
- CF set on failure
- AX destroyed
- AH = 80h/86h if not supported
- SeeAlso: AH=05h"ABIOS",AH=C1h
-
- Format of ABIOS System Parameter Table:
- Offset Size Description (Table 0336)
- 00h DWORD FAR address of ABIOS Common Start Routine
- 04h DWORD FAR address of ABIOS Interrupt Routine
- 08h DWORD FAR address of ABIOS Time-out Routine
- 0Ch WORD number of bytes of stack required by this ABIOS implementation
- 0Eh 16 BYTEs reserved
- 1Eh WORD number of entries in initialization table
- --------V-1504-------------------------------
- INT 15 - Amstrad PC1512 - WRITE VDU COLOR PLANE READ REGISTER
- AH = 04h
- AL = value (RDSEL1 and RDSEL0)
- Return: nothing
- SeeAlso: AH=03h"Amstrad",AH=05h"Amstrad"
- --------O-1504-------------------------------
- INT 15 - VMiX - "sys_vprintf" - FORMATTED OUTPUT TO STREAM
- AH = 04h
- STACK: DWORD control string
- DWORD array of arguments
- Return: nothing
- SeeAlso: AH=03h"VMiX"
- --------T-1504-------------------------------
- INT 15 - MultiDOS Plus - SEND MESSAGE TO ANOTHER TASK
- AH = 04h
- AL = mailbox number (00h-3Fh)
- CX = message length in bytes
- DS:SI -> message
- Return: AH = status
- 00h successful
- 01h out of message memory
- 02h invalid mailbox number
- Note: the message is copied into a system buffer; the caller may immediately
- reuse its buffer
- SeeAlso: AH=05h"MultiDOS"
- --------B-1505-------------------------------
- INT 15 - SYSTEM - BUILD ABIOS INITIALIZATION TABLE (PS)
- AH = 05h
- ES:DI -> results buffer of length 18h * Number_of_Entries (see #0337)
- DS = segment containing ABIOS RAM extensions (zero if none)
- Return: CF clear if successful
- AH = 00h success
- ES:DI buffer filled
- AL destroyed
- CF set on failure
- AX destroyed
- AH = 80h/86h if not supported
- SeeAlso: AH=04h"ABIOS",AH=C1h
-
- Format of one entry of ABIOS Initialization Table:
- Offset Size Description (Table 0337)
- 00h WORD device ID (see #0338)
- 02h WORD number of Logical IDs
- 04h WORD Device Block length (zero for ABIOS patch or extension)
- 06h DWORD -> init routine for Device Block and Function Transfer Table
- 0Ah WORD request block length
- 0Ch WORD Function Transfer Table length (zero for a patch)
- 0Eh WORD Data Pointers length (in Common Data Area)
- 10h BYTE secondary device ID (hardware level this ABIOS ver supports)
- 11h BYTE revision (device driver revision level this ABIOS supports)
- 12h 6 BYTEs reserved
-
- (Table 0338)
- Values for ABIOS device ID:
- 00h ABIOS internal calls
- 01h floppy disk
- 02h hard disk
- 03h video
- 04h keyboard
- 05h parallel port
- 06h serial port
- 07h system timer
- 08h real-time clock
- 09h system services
- 0Ah NMI
- 0Bh mouse
- 0Eh CMOS RAM
- 0Fh DMA
- 10h Programmable Option Select (POS)
- 16h keyboard password
- --------V-1505-------------------------------
- INT 15 - Amstrad PC1512 - WRITE VDU GRAPHICS BORDER REGISTER
- AH = 05h
- AL = value (I,R,G,B bits)
- Return: nothing
- SeeAlso: AH=04h"Amstrad"
- --------O-1505-------------------------------
- INT 15 - VMiX - "sys_getpid" - GET PROCESS ID OF CURRENT PROCESS
- AH = 05h
- Return: AX = process ID
- SeeAlso: AH=06h"VMiX",AH=0Bh"VMiX"
- --------T-1505-------------------------------
- INT 15 - MultiDOS Plus - CHECK MAILBOX
- AH = 05h
- AL = mailbox number (00h-3Fh)
- Return: AH = status
- 00h successful
- DX = length of first message in queue, 0000h if no message
- 02h invalid mailbox number
- SeeAlso: AH=04h"MultiDOS",AH=06h"MultiDOS"
- --------b-1506-------------------------------
- INT 15 - Amstrad PC1512 - GET ROS VERSION NUMBER
- AH = 06h
- Return: BX = version number
- --------O-1506-------------------------------
- INT 15 - VMiX - "sys_getpcb" - GET POINTER TO PROCESS CONTROL BLOCK
- AH = 06h
- STACK: WORD process ID
- Return: DX:AX -> process control block
- SeeAlso: AH=05h"VMiX",AH=07h"VMiX",AH=08h"VMiX"
- --------T-1506-------------------------------
- INT 15 - MultiDOS Plus - READ MAILBOX
- AH = 06h
- AL = mailbox number (00h-3Fh)
- CX = size of buffer in bytes
- ES:DI -> buffer for message
- Return: AH = status
- 00h successful
- CX = number of bytes copied
- DX = actual length of message
- 02h invalid mailbox number
- Note: if the caller's buffer is not large enough, the message is truncated
- and the remainder is lost
- SeeAlso: AH=04h"MultiDOS",AH=05h"MultiDOS"
- --------O-1507-------------------------------
- INT 15 - VMiX - "sys_getocb" - GET POINTER TO OBJECT CONTROL BLOCK
- AH = 07h
- STACK: WORD object type
- Return: DX:AX -> object control block
- SeeAlso: AH=06h"VMiX",AH=08h"VMiX"
- ----------1507-------------------------------
- INT 15 - IBM SurePath BIOS - Officially "Private" Function
- AH = 07h
- SeeAlso: AH=08h"IBM"
- --------T-1507-------------------------------
- INT 15 - MultiDOS Plus - SPAWN INTERNAL TASK (CREATE NEW THREAD)
- AH = 07h
- BX:CX = entry point of new task
- DX = stack size in paragraphs
- Return: AH = status
- 00h successful
- 01h no free task control blocks
- 02h no free memory for task's stack
- Note: execution returns immediately to calling task
- SeeAlso: AH=08h"MultiDOS",AH=09h"MultiDOS",AH=13h"MultiDOS"
- --------O-1508-------------------------------
- INT 15 - VMiX - "sys_getccb" - GET CHANNEL CONTROL BLOCK
- AH = 08h
- STACK: WORD channel ID
- Return: DX:AX -> channel control block
- SeeAlso: AH=06h"VMiX",AH=07h"VMiX"
- --------B-1508-------------------------------
- INT 15 - IBM SurePath BIOS - WAIT REQUESTED TIME PERIOD
- AH = 08h
- AL = function
- 00h wait in increments of 15.025 microseconds
- CX = number of time increments to wait (0000h = maximum)
- 80h wait in increments of 840 ns
- ECX = number of time increments to wait
- 81h I/O event wait
- BH = bitmask of bits to check
- BL = expected pattern
- DX = I/O port address
- ECX = number of 840 ns microticks to wait
- Return: ECX = 00000000h if expected pattern did not occur
- 82h memory event wait
- BH = bitmask of bits to check
- BL = expected pattern
- ES:SI -> BYTE to check
- ECX = number of 840 ns microticks to wait
- Return: ECX = 00000000h if expected pattern did not occur
- other reserved
- Return: CF clear if successful
- CF set on error
- AH = status
- 00h successful
- 01h used 15.025 microsecond interval, time rounded up
- 08h reserved subfunction
- 86h function not supported
- Notes: IBM classifies this function as optional
- if the POST determines that the timer is nonfunctional, this function
- uses the 15.025 microsecond refresh timer instead of the
- full-resolution timer
- SeeAlso: AH=07h"IBM",AH=09h"IBM",AH=86h
- --------T-1508-------------------------------
- INT 15 - MultiDOS Plus - TERMINATE INTERNAL TASK (KILL THREAD)
- AH = 08h
- Return: calling task terminated, so execution never returns to caller
- Notes: an internal task must be terminated with this function rather than a
- DOS termination function
- task's stack space is returned to parent task's memory pool
- SeeAlso: AH=07h"MultiDOS"
- --------O-1509-------------------------------
- INT 15 - VMiX - "sys_getqueue" - GET ID OF QUEUED ELEMENT
- AH = 09h
- STACK: WORD queue ID (0 = process queue, 1 = object, 3 = type)
- WORD subqueue ID
- Return: AX = queue ID
- SeeAlso: AH=0Ah"VMiX"
- ----------1509-------------------------------
- INT 15 - IBM BIOS - RESERVED FOR PCMCIA SYSTEM RESOURCE TABLE ACCESS
- AH = 09h
- no further details available
- SeeAlso: AH=08h"IBM"
- --------T-1509-------------------------------
- INT 15 - MultiDOS Plus - CHANGE TASK'S PRIORITY
- AH = 09h
- AL = new priority
- Return: nothing
- Note: the priority has different meanings depending on whether priority-
- based or round-robin scheduling is used
- SeeAlso: AH=07h"MultiDOS"
- --------O-150A-------------------------------
- INT 15 - VMiX - "sys_qetqnext" - GET ID OF NEXT QUEUED ELEMENT
- AH = 0Ah
- STACK: WORD queue ID (0 = process queue, 1 = object, 3 = type)
- WORD ID of current element in queue chain
- Return: AX = ID of next element
- SeeAlso: AH=09h"VMiX",AH=0Fh"VMiX"
- --------T-150A-------------------------------
- INT 15 - MultiDOS Plus - CHANGE TIME SLICE INTERVAL
- AH = 0Ah
- AL = new interval
- 00h = 55.0 ms (default)
- 80h = 27.5 ms
- 40h = 13.75 ms
- 20h = 6.88 ms
- 10h = 3.44 ms
- 08h = 1.72 ms
- SeeAlso: AH=03h"MultiDOS"
- --------O-150B-------------------------------
- INT 15 - VMiX - "sys_sysreq" - SYSTEM CONFIGURATION MANAGER
- AH = 0Bh
- STACK: WORD caller's UID
- DWORD pointer to ASCIZ name of requested method
- "abort" abort current send/receive on comm port
- "block" start/end critical section
- "close" terminate interrupt-drive comm I/O
- "open" prepare comm port for interrupt-driven I/O
- "delay" set delay timer and wait
- "hibernate" put process to sleep
- "ints" enable/disable interrupt-driven INT 14h
- "length" get current send/receive buffer offsets
- "kswitch" switch stacks
- "numproc" get number of active processes
- "protocol" set protocol function for comm interrupts
- "relocate" set/reset VMiX flag for relocating to himem
- "status" get current open comm port status
- "wake" awaken a process
- "xport" get comm port polled for logins
- ---if "abort"---
- no additional arguments
- ---if "block"---
- WORD 0000h end, 0001h start
- ---if "close"---
- no additional arguments
- ---if "open"---
- WORD comm port (00h-03h)
- WORD BIOS parameter byte (see #0226 at INT 14/AH=00h),
- except bits 7-5: 000 = 19200, 001 = 38400, 011 = 115200
- ---if "delay"---
- WORD time in seconds
- ---if "hibernate"---
- WORD process ID
- ---if "ints"---
- WORD 0000h if no, 0001h if yes
- ---if "length","numproc","relocate","status","xport"---
- no additional arguments
- ---if "kswitch"---
- DWORD pointer to new stack
- ---if "protocol"---
- DWORD pointer to function (must be in low "assign"ed memory
- when in 386 mode)
- ---if "wake"---
- WORD process ID
- Return: DX:AX -> result or 0000h:0000h
- ---if "length"---
- BYTE receive offset
- BYTE send offset
- ---if "kswitch"---
- DWORD old stack pointer
- ---if "numproc"---
- WORD number of active processes
- ---if "status"---
- current open comm port status
- ---if "xport"---
- current comm port being polled for logins
- Note: the "delay" command reportedly disables the keyboard until the delay
- completes
- SeeAlso: AH=05h"VMiX",AH=0Eh"VMiX"
- --------T-150B-------------------------------
- INT 15 - MultiDOS Plus - FORCE DISPLAY OUTPUT TO PHYSICAL SCREEN MEMORY
- AH = 0Bh
- Return: nothing
- Notes: sets calling task's screen pointer to actual screen memory; the pointer
- may be restored with AH=0Ch
- caller's video mode must be same as foreground task's video mode
- any text written while in the background will be saved to the
- foreground task's virtual screen when it switches to the background
- useful if a background task wants to display a message on the
- foreground screen
- SeeAlso: AH=0Ch"MultiDOS"
- --------O-150C-------------------------------
- INT 15 - VMiX - "sys_getstack" - GET POINTER TO PROCESS TSS STACK
- AH = 0Ch
- STACK: WORD process ID
- Return: DX:AX -> TSS stack store
- SeeAlso: AH=00h"VMiX"
- --------T-150C-------------------------------
- INT 15 - MultiDOS Plus - RESTORE OLD VIDEO DISPLAY MEMORY
- AH = 0Ch
- Return: nothing
- Note: restores task's screen pointer saved by AH=0Bh; must not be called
- unless AH=0Bh has been called first
- SeeAlso: AH=0Bh"MultiDOS"
- --------O-150D-------------------------------
- INT 15 - VMiX - "sys_spawn" - START A CHILD PROCESS JOB SHELL
- AH = 0Dh
- STACK: DWORD ASCIZ string starting with requested I/O channel and
- followed by standard VMiX shell command string
- Return: AX = process ID or error code "SYS_ERROR"
- Note: the maximum string length is 7Fh characters
- SeeAlso: AH=0Eh"VMIX",AH=11h"VMiX",INT 21/AH=4Bh
- --------T-150D-------------------------------
- INT 15 - MultiDOS Plus - DISABLE MULTITASKING
- AH = 0Dh
- Return: nothing
- Note: calling task receives all time slices until AH=0Eh is called; this
- allows time-critical events or nonreentrant code to be processed
- SeeAlso: AH=0Eh"MultiDOS",AH=10h"MultiDOS",AX=101Bh,AH=20h"MultiDOS"
- --------O-150E-------------------------------
- INT 15 - VMiX - "sys_kill" - HARD TERMINATE PROCESS
- AH = 0Eh
- STACK: WORD process ID
- Return: AX = status (SYS_OK or SYS_ERROR)
- SeeAlso: AH=0Bh"VMiX",AH=0Dh"VMIX"
- --------T-150E-------------------------------
- INT 15 - MultiDOS Plus - ENABLE MULTITASKING
- AH = 0Eh
- Return: nothing
- SeeAlso: AH=0Dh"MultiDOS",AX=101Ch,AH=20h"MultiDOS"
- --------d-150F-------------------------------
- INT 15 C - SYSTEM - FORMAT UNIT PERIODIC INTERRUPT (PS ESDI drives only)
- AH = 0Fh
- AL = phase code
- 00h reserved
- 01h surface analysis
- 02h formatting
- Return: CF clear if formatting should continue
- CF set if formatting should terminate
- Note: called during ESDI drive formatting after each cylinder is completed
- SeeAlso: INT 13/AH=1Ah
- --------O-150F-------------------------------
- INT 15 - VMiX - "sys_getqkey" - GET KEY FIELD OF QUEUED ELEMENT
- AH = 0Fh
- STACK: WORD queue ID (0 = process queue, 1 = object q, 3 = type q)
- WORD ID of element in queue chain
- Return: AX = key
- SeeAlso: AH=0Ah"VMiX"
- --------T-150F-------------------------------
- INT 15 - MultiDOS Plus - EXECUTE A MULTIDOS PLUS COMMAND
- AH = 0Fh
- DS:BX -> ASCIZ command
- Return: after command has been processed
- Notes: specified string is executed as if it had been typed at the MultiDOS
- command prompt
- the task is placed on a queue which MultiDOS examines periodically and
- is suspended until MultiDOS has processed the command
- all lowercase characters up to the first blank are converted to upper
- case within the given buffer
- --------O-1510-------------------------------
- INT 15 - VMiX - "sys_virtual" - EXECUTE CONFORMING FUNCTION IN PROTECTED MODE
- AH = 10h
- STACK: DWORD pointer to function
- N WORDs function args
- Return: AX = function's return value??? (not specified in documentation)
- Note: while the function is executing, the following global descriptors are
- available:
- 20h stack segment
- 38h code segment of function
- 40h data alias for function's code segment
- additional GDT descriptors can be allocated using AH=02h with
- function "assign gdt"
- SeeAlso: AH=02h"VMiX",AH=51h"VMiX"
- --------T-1510-------------------------------
- INT 15 - MultiDOS Plus - TEST RESOURCE SEMAPHORE
- AH = 10h
- AL = semaphore number (00h-3Fh)
- Return: AH = status
- 00h semaphore not in use
- 01h semaphore owned by another task
- 02h invalid semaphore number
- 03h semaphore owned by caller
- SeeAlso: AH=02h"MultiDOS",AH=0Dh"MultiDOS",AH=1Dh"MultiDOS"
- --------Q-151000-----------------------------
- INT 15 - TopView - "PAUSE" - GIVE UP CPU TIME
- AX = 1000h
- Return: after other processes run
- Note: under DESQview, if the process issuing this call has hooked INT 08h,
- the current time-slice is set to expire at the next clock tick rather
- than immediately
- SeeAlso: AH=00h"MultiDOS",AX=5305h,INT 21/AH=89h,INT 21/AH=EEh"DoubleDOS"
- SeeAlso: INT 2F/AX=1680h,INT 60/DI=0106h,INT 62/AH=01h,INT 6F/AH=2Ah"F_YIELD"
- SeeAlso: INT 7A/BX=000Ah,INT 7F/AH=02h"MultiLink",INT 7F/AH=E8h
- --------Q-151001-----------------------------
- INT 15 - TopView - "GETMEM" - ALLOCATE "SYSTEM" MEMORY
- AX = 1001h
- BX = number of bytes to allocate
- Return: ES:DI -> block of memory or 0000h:0000h (DV v2.26+)
- AX = status (DV v2.42)
- 0000h successful
- 0001h failed
- Note: use SETERROR (AX=DE15h) to avoid a user prompt if there is insufficient
- common memory. Under DV v2.42, this call never generates a user
- prompt regardless of the SETERROR value; instead, it always returns
- AX=0001h and ES:DI=0000h:0000h if out of memory
- SeeAlso: AX=1002h,AX=102Eh,AX=DE0Ch,AX=DE15h
- --------Q-151002-----------------------------
- INT 15 - TopView - "PUTMEM" - DEALLOCATE "SYSTEM" MEMORY
- AX = 1002h
- ES:DI -> previously allocated block
- Return: block freed
- SeeAlso: AX=1001h,AX=DE0Dh
- --------Q-151003-----------------------------
- INT 15 - TopView - "PRINTC" - DISPLAY CHARACTER/ATTRIBUTE ON SCREEN
- AX = 1003h
- BH = attribute
- BL = character
- DX = segment of object handle for window
- Return: nothing
- Note: BX=0000h does not display anything, it only positions the hardware
- cursor to the logical cursor's current position
- --------Q-1510-------------------------------
- INT 15 - TopView - UNIMPLEMENTED IN DV 2.x
- AH = 10h
- AL = 04h thru 12h
- Return: pops up "Programming error" window in DV 2.x
- --------Q-151013-----------------------------
- INT 15 - TopView - "GETBIT" - DEFINE A 2ND-LEVEL INTERRUPT HANDLER
- AX = 1013h
- ES:DI -> FAR service routine
- Return: BX = bit mask indicating which bit was allocated
- 0000h if no more bits available
- SeeAlso: AX=1014h,AX=1015h
- Note: only a few TopView/DESQview API calls are allowed during a hardware
- interrupt; if other calls need to be made, the interrupt handler
- must schedule a 2nd-level interrupt with "SETBIT" (AX=1015h)
- --------Q-151014-----------------------------
- INT 15 - TopView - "FREEBIT" - UNDEFINE A 2ND-LEVEL INTERRUPT HANDLER
- AX = 1014h
- BX = bit mask from INT 15/AX=1013h
- Return: nothing
- SeeAlso: AX=1013h,AX=1015h
- --------Q-151015-----------------------------
- INT 15 - TopView - "SETBIT" - SCHEDULE ONE OR MORE 2ND-LEVEL INTERRUPTS
- AX = 1015h
- BX = bit mask for interrupts to post
- Return: indicated routines will be called: (DV 2.0x) at next task switch
- (DV 2.2x) immediately on return from
- hardware interrupt
- Notes: this is one of the few TopView calls which are allowed from a hardware
- interrupt handler
- the handler will be called with ES containing the segment of the handle
- of the next task to be executed; on return, ES must be the segment of
- a task handle
- SeeAlso: AX=1013h,AX=1014h
- --------Q-151016-----------------------------
- INT 15 - TopView - "ISOBJ" - VERIFY OBJECT HANDLE
- AX = 1016h
- ES:DI = possible object handle
- Return: BX = status
- FFFFh if ES:DI is a valid object handle (see #0340)
- 0000h if ES:DI is not
- Note: under DESQview versions prior to 2.50, an object handle is always a
- pointer to the object; for versions 2.50 and up, only task handles
- are always pointers--other handles may consist of a unique object
- number and offset into DESQview's common memory (see #0349)
- SeeAlso: AX=DE14h,AX=DE2Bh,AX=DE2Ch
-
- (Table 0339)
- Values for DESQview object type:
- 00h window/task
- 01h mailbox
- 02h keyboard
- 03h timer
- 04h pointer
- 05h panel
- 06h objectq
-
- Format of DESQview object:
- Offset Size Description (Table 0340)
- 00h WORD offset in common memory of previous object of same type
- 02h WORD offset in common memory of next object of same type
- 04h WORD signature FEDCh (DV 2.42-)
- signature FEDCh or object number (DV 2.50+)
- 06h WORD object type (see #0339)
- 08h DWORD object handle to return to caller
- 0Ch DWORD canonicalized object address (segment = common memory)
- 10h WORD offset in common memory of owning task
- (0000h for unowned OBJECTQs)
- 12h WORD mapping context
- offset in common memory of mapping context record (see #0342)
- remainder varies by object type and DESQview version
- ---v2.42 keyboard object---
- 14h WORD flag bits (see also AH=12h/BH=0Ah"OBJECT")
- bit 15: keyboard opened
- 16h 4 BYTEs ???
- 1Ah WORD priority in OBJECTQ???
- 1Ch ...
- 25h WORD offset in common memory of ??? task
- 27h 4 BYTEs ???
- ---v2.42 objectq object---
- 14h WORD flag bits (see also AH=12h/BH=0Ah"OBJECT")
- bit 15: OBJECTQ opened
- 16h 2 BYTEs ???
- 18h WORD offset in common memory of ??? task
- 1Ah 6 BYTEs ???
- ---v2.42 mailbox object---
- 14h WORD flag bits (see also AH=12h/BH=0Ah"OBJECT")
- bit 15: mailbox opened
- 1Ah WORD priority in OBJECTQ???
- 1Ch 6 BYTEs ???
- 22h WORD offset in common memory of mailbox name (counted string)
- 0000h if no name
- <= 5 BYTEs ???
- ---v2.22-2.42,2.52,2.60 window/task object---
- 14h BYTE 00h window, 01h task
- 15h BYTE internal (not Switch menu) window number???
- 16h BYTE internal (not Switch menu) window number???
- 17h WORD segment of internal window record (see #0343)
- 19h 2 BYTEs ???
- 1Bh BYTE cursor row
- 1Ch BYTE cursor column
- 1Dh BYTE visible window origin, row
- 1Eh BYTE visible window origin, column
- 1Fh BYTE window height (logical)
- 20h BYTE window width (logical)
- 21h BYTE window position, row
- 22h BYTE window position, column
- 23h BYTE window height (visible)
- 24h BYTE window width (visible)
- 25h BYTE row of top of frame (or window if unframed)
- 26h BYTE column of left of frame (or window if unframed)
- 27h BYTE window height (physical, including frame)
- 28h BYTE window width (physical, including frame)
- 29h BYTE unzoomed visible origin, row (00h before first zoom)
- 2Ah BYTE unzoomed visible origin, column (00h before first zoom)
- 2Bh BYTE unzoomed window position, row (00h before first zoom)
- 2Ch BYTE unzoomed window position, column (00h before first zoom)
- 2Dh BYTE unzoomed window height (00h before first zoom)
- 2Eh BYTE unzoomed window width (00h before first zoom)
- unzoomed parameters above are updated when window is zoomed
- to full screen
- 2Fh BYTE ??? initially logical window height
- 30h BYTE ??? initially logical window width
- 31h 2 BYTEs ???
- 33h BYTE minimum height of window
- 34h BYTE minimum width of window
- 35h BYTE maximum height of window
- 36h BYTE maximum width of window
- 37h 3 BYTEs ???
- 3Ah 8 BYTEs window frame characters: ul,ur,ll,lr,t,b,l,r
- 42h 24 BYTEs attributes???
- 5Ah 8 BYTEs window frame characters: ul,ur,ll,lr,t,b,l,r
- 62h 3 BYTEs ???
- 65h BYTE ??? bitflags
- 66h BYTE bit 0: window is zoomed
- 67h BYTE ???
- 68h WORD offset in common memory of window name or 0000h if untitled
- 6Ah WORD length of window name
- 6Ch 2 BYTEs ???
- 6Eh WORD offset of logical cursor in window (in character cells)
- 70h DWORD pointer to field table for window
- 74h BYTE ???
- 75h 2 BYTEs ???
- 77h BYTE number of last-visited field
- 78h DWORD pointer to field table entry for last-visited field
- 7Ch 3 BYTEs ???
- 7Fh BYTE select field marker character
- 80h BYTE ??? bit flags
- bit 0: allow ECh window stream opcode to change reverse logattr
- bit 1: alternate field processing mode selected
- 81h BYTE ???
- 82h DWORD notification function (manager stream opcode 8Ah)
- no notification if segment = 0000h
- 86h DWORD notification argument (manager stream opcode 8Bh)
- 8Ah WORD offset in common memory of ??? window object or 0000h
- 8Ch WORD offset in common memory of ??? window object or 0000h
- 8Eh WORD offset in common memory of ??? window object or 0000h
- 90h BYTE ??? bitflags
- 91h BYTE ???
- ---task object only
- 92h BYTE bit flags (bits 0-4)
- 93h BYTE character for ??? (default 20h)
- 94h BYTE ??? flag
- 95h WORD offset in common memory of ???
- 97h 2 BYTEs ???
- 99h WORD ???
- 9Bh BYTE ??? bit flags
- bit 3: ???
- bit 6: perform protected-attribute processing on select fields
- 9Ch BYTE ???
- 9Dh WORD offset in common memory of current register save record
- (see #0341). No register save record in use if < 01C0h
- 9Fh WORD offset in common memory of task's keyboard object
- A1h WORD offset in common memory of task's OBJECTQ object
- A3h WORD offset in common memory of task's mailbox object
- A5h WORD semaphore: FFFFh if on user stack, else on task's private stack
- A7h DWORD user's SS:SP
- ABh WORD task's private SP (SS read from offset 0Ah)
- ADh 6 BYTEs ???
- B3h BYTE ??? bit flags
- bit 0: run in foreground only
- B4h BYTE ???
- B5h BYTE ??? bitflags
- B6h BYTE task status (see #0479 at AX=DE2Ch)
- B7h 9 BYTEs ???
- C0h WORD head pointer for keyboard buffer (wraps back to 00h after 80h)
- C2h WORD tail pointer for keyboard buffer (wraps back to 00h after 80h)
- C4h 2 BYTEs ??? (0000h)
- C6h WORD segment of keyboard buffer for task
- C8h WORD offset in common memory of ??? keyboard object
- CAh BYTE ???
- ---v2.22-2.42
- CBh WORD offset in common memory of ??? object
- CEh BYTE ??? flag
- CFh WORD offset in common memory of default notify window for task
- or 0000h if none
- D1h 4 BYTEs ???
- D5h BYTE window number on Switch Window menu
- D6h 5 BYTEs ???
- DBh WORD offset in common memory of ??? object
- DDh 2 BYTEs ???
- DFh WORD API level for task
- E1h WORD offset in common memory of object task is waiting on if task
- status is 'waiting', else 0000h
- E7h WORD segment of ???
- E9h 4 BYTEs ???
- EDh WORD EMS handle of virtualization buffer, 0000h if no virtualization
- F1h 12 BYTEs ???
- FBh WORD ???
- FDh BYTE ???
- FFh 12 BYTEs ???
- 10Bh DWORD pointer to process record (see #0344,#0345)
- 10Dh 10 BYTEs ???
- 119h DWORD SS:SP for ???
- 11Dh 4 BYTEs ???
- 121h DWORD pointer to ???
- 125h 25 BYTEs ???
- 13Eh DWORD pointer to ??? in system memory
- ---v2.22
- 142h 3 BYTEs ???
- 145h task's default keyboard object
- ---v2.42
- 142h DWORD pointer to first task instance data record in system memory
- 148h DWORD pointer to last task instance data record in system memory
- (see #0346)
- 14Ah BYTE ???
- 14Dh 42 BYTEs task's default keyboard object
- 177h 32 BYTEs task's ObjectQ object
- 197h 41 BYTEs task's default mailbox object
- 1C0h 24 BYTEs first register save record
- 450h -- default top of private stack
- ---v2.52 (probably all DV/X)
- Same as v2.60 below except there is an extra 29 bytes inserted somewhere
- before offset 9Fh, but not yet known exactly where. Also, for the WAIT_ON
- field (v2.60 offset E3h), some X apps (probably waiting on a socket) have
- 0000h even when waiting.
- ---v2.60
- CBh WORD ??? (added in 2.50 - rest is same as 2.42)
- CDh WORD offset in common memory of ??? object
- D0h BYTE ??? flag
- D1h WORD offset in common memory of default notify window for task
- or 0000h if none
- D3h 4 BYTEs ???
- D7h BYTE window number on Switch Window menu
- D8h 5 BYTEs ???
- DDh WORD offset in common memory of ??? object
- DFh 2 BYTEs ???
- E1h WORD API level for task
- E3h WORD If status at B6h=waiting, offset in common memory of object
- that task is waiting on, else 0000h. (Task with CPU also
- has 0000h here)
- E9h WORD segment of ???
- EBh 4 BYTEs ???
- EFh WORD EMS handle of virtualization buffer, 0 if no virtualization
- F3h 12 BYTEs ???
- FDh WORD ???
- FFh BYTE ???
- 101h 8 BYTEs ???
- 109h DWORD pointer to process record in system memory
- 10Dh 14 BYTEs ???
- 11Bh DWORD SS:SP for ???
- 11Fh 4 BYTEs ???
- 123h DWORD pointer to ???
- 127h 25 BYTEs ???
- 140h DWORD pointer to ??? in system memory
- 144h DWORD pointer to first task instance data record in system memory
- 148h DWORD pointer to last task instance data record in system memory
- (from INT 15/AX=DE27h) (see #0346)
- 14Ch BYTE ???
- 14Eh 42 BYTEs task's default keyboard object
- 179h 32 BYTEs task's ObjectQ object
- 199h 41 BYTEs task's default mailbox object
- 1C2h 24 BYTEs first register save record
- 452h -- default top of private stack
-
- Format of DESQview Register Save Record:
- Offset Size Description (Table 0341)
- 00h WORD AX
- 02h WORD BX
- 04h WORD CX
- 06h WORD DX
- 08h WORD DI
- 0Ah WORD SI
- 0Eh WORD DS
- 10h WORD ES
- 12h DWORD return address
- 16h WORD original flags
-
- Format of DESQview mapping context record:
- Offset Size Description (Table 0342)
- 00h WORD lowest segment in process's memory
- (often start of system memory chain)
- 02h WORD size of process's memory in paragraphs
- 04h BYTE flag: 00h if process swapped out, 01h otherwise
- 05h BYTE flag: 00h if allocated in conventional memory, 01h if EMS
- 06h 2 BYTEs ???
- 08h WORD EMS handle if in EMS, else 0
- 0Ah 2 BYTEs ??? (nonzero if system memory resides in shared mem???)
- 0Ch WORD segment of system memory block that contains process record,
- referenced from segment of start of system memory chain
- 0Eh BYTE ???
- 0Fh WORD size of system memory block that contains process record
- and DOS memory in paragraphs
- 11h BYTE bit flags
- Bit 0: Swapped out???
- Bit 1: ???
- Bit 2: Swapped out???
- 12h BYTE ???
- 13h BYTE reference count
- ---v2.31
- 14h 10 BYTEs ???
- 1Eh WORD segment of process record
- 20h 2 BYTEs ???
- 22h WORD segment of ??? (in first free system memory block???)
- 24h WORD segment of end of system memory chain
- 26h WORD segment of start of system memory chain
- 28h 8 BYTEs ???
- 2Ah DWORD pointer to ??? (process record???)
- 2Dh 10 BYTEs ???
- 37h BYTE lowest interrupt vector to save on context switch
- 38h BYTE highest interrupt vector to save on context switch
- 39h WORD offset in common memory of main task with this context
- 3Ah 12 BYTEs ???
- 46h BYTE internal mapping context number
- 47h 12 BYTEs ???
- ---v2.5x-2.60
- 14h 6 BYTEs ???
- 1Ah WORD segment of process record
- 1Ch 2 BYTEs ???
- 1Eh WORD segment of first free system memory block
- 20h WORD segment of start of system memory chain
- 22h WORD segment of end of system memory chain
- 24h 8 BYTEs ???
- 2Ch DWORD pointer to ??? (1 segment into process record???)
- 30h 3 BYTEs ???
- 33h WORD Offset in common memory of main task with this context
- 35h 7 BYTEs ???
- 3Ch BYTE internal mapping context number
- 3Dh 14 BYTEs ???
- 4Bh WORD first DOS memory segment (first MCB segment+1)
- 4Dh BYTE ??? (flag???)
- ---v2.53 (2.5x???)
- 4Eh 12 BYTEs ???
- ---v2.60
- 4Eh WORD segment of script buffer (see #0347)
- 50h 6 BYTEs ???
-
- Format of DESQview Internal Window Record (v2.31-2.60):
- Offset Size Description (Table 0343)
- 00h BYTE internal window number???
- 01h BYTE display page???
- 02h BYTE video mode
- 03h 3 BYTEs ???
- 06h BYTE logical window height
- 07h BYTE logical window width
- 08h DWORD pointer to text video buffer
- 0Ch 116 BYTEs ???
-
- Format of DESQview process record (v2.31):
- Offset Size Description (Table 0344)
- -470h 13 BYTEs filename of ??? Script
- -463h 1117 BYTEs ??? (script buffer???)
- -6h 6 BYTEs ???
- 00h WORD segment of parent PSP in process
- 02h 5 BYTEs ???
- 07h WORD segment of current PSP in process
- 09h WORD segment of first MCB in process
- 0Bh 13 BYTEs ???
- 18h 1024 BYTEs process's interrupt vector table
- 418h 376 BYTEs ???
- 590h first MCB in process
- SeeAlso: #0345
-
- Format of DESQview process record (v2.52-v2.60) (probably also 2.5x):
- Offset Size Description (Table 0345)
- 00h 28 BYTEs EXE header of last EXE, ??? if last program run was COM
- 1Ch ??? BYTEs overwritten with ASCIZ filename of last program run (EXE/COM)
- 11Ch WORD segment of parent PSP in process
- 11Eh 4 BYTEs ???
- 122h WORD segment of current PSP
- 124h WORD segment of current PSP
- 126h WORD segment of first MCB in process
- 128h 4 BYTEs ???
- 12Ch DWORD pointer to first process instance data record in system memory
- 130h DWORD pointer to last process instance data record in system memory
- (from INT 15/AX=DE27h) (see #0346)
- 134h 8 BYTEs ???
- 13Ch WORD size of current environment
- 13Eh WORD segment of current environment
- 140h WORD segment of current PSP
- 142h DWORD entry point of current program
- 146h 10 BYTEs ???
- ---v2.52 (v2.5x???)
- 150h BYTE ???
- 151h WORD segment of parent PSP in process
- 153h WORD ???
- 155h WORD ???
- 157h WORD ???
- 159h 4 BYTEs ???
- 15Dh WORD segment of current environment
- 15Fh WORD segment of current PSP
- 161h WORD segment of ???
- 162h WORD ???
- 164h 3 BYTEs ???
- 168h 1024 BYTEs process's interrupt vector table
- 568h 120 BYTEs ???
- 5E0h first MCB in process
- ---v2.60
- 150h WORD segment of parent PSP in process
- 152h WORD ???
- 154h WORD ???
- 156h WORD ???
- 158h 4 BYTEs ???
- 15Ch WORD segment of current environment
- 15Eh WORD segment of current PSP
- 160h WORD segment of ???
- 162h WORD ???
- 164h 1024 BYTEs process's interrupt vector table
- 564h 108 BYTEs ???
- 5D0h first MCB in process
- SeeAlso: #0344
-
- Format of DESQview task or process instance data record (v2.5x???, v2.60):
- Offset Size Description (Table 0346)
- 00h DWORD pointer to next record of same type or 00000000
- 04h DWORD pointer to previous record of same type or 00000000
- 08h DWORD pointer to source area of memory during restore state
- 0Ch WORD number of bytes to save/restore
- 0Eh DWORD pointer to destination area of memory during restore state
- 12h WORD ??? (0)
- 14h N BYTEs source memory buffer during restore state
-
- Format of DESQview script buffer (v2.60):
- Offset Size Description (Table 0347)
- 00h 13 BYTEs ASCIZ Script filename
- 0Dh 80 BYTEs ???
- 5Eh N BYTEs script records (see #0348)
-
- Format of one DESQview script record (v2.60):
- Offset Size Description (Table 0348)
- 00h BYTE signature 12h
- 01h 18 BYTEs blank-padded script name
- 13h BYTE ASCII code of key attached to script or 0 if non-ASCII key
- 14h BYTE scan code of key attached to script if non-ASCII, else 0
- 15h BYTE ???
- 16h WORD size of script in bytes
- 18h N BYTEs script (ASCII code of each keystroke; if 0, next byte is
- scan code of non-ASCII key)
- SeeAlso: #0347
-
- Format of DESQview Common Memory Header (v2.31-2.60):
- Offset Size Description (Table 0349)
- 00h WORD offset of lowest used block
- 02h WORD bytes of commom memory, including header
- 04h WORD offset of first free block
- 06h N BYTEs size depends of DV version, ??? (DVP buffer???)
- Note: the above is located at the beginning of the commom memory segment
- SeeAlso: #0350,#0351,#0359
-
- Format of DESQview Free block header:
- Offset Size Description (Table 0350)
- 00h WORD size of block in bytes including header
- 02h WORD offset of next free block
- 04h N BYTEs free block
- SeeAlso: #0349,#0351
-
- Format of DESQview Used block header:
- Offset Size Description (Table 0351)
- 00h WORD size of block in bytes including header
- 02h N BYTEs used block
- SeeAlso: #0349,#0350
- --------Q-151017-----------------------------
- INT 15 - TopView - UNIMPLEMENTED IN DV 2.x
- AX = 1017h
- Return: pops up "Programming error" window in DV 2.x
- --------Q-151018-----------------------------
- INT 15 - TopView - "LOCATE" - FIND WINDOW AT A GIVEN SCREEN LOCATION
- AX = 1018h
- BH = column
- BL = row
- ES = segment of object handle for window below which to search
- 0000h = start search with topmost window
- Return: ES = segment of object handle for window which is visible at the
- indicated position, or covered by indicated window
- 0000h if no window
- SeeAlso: AX=1023h,AX=1024h
- --------Q-151019-----------------------------
- INT 15 - TopView - "SOUND" - MAKE TONE
- AX = 1019h
- BX = frequency in Hertz (0000h = silence)
- CX = duration in clock ticks (18.2 ticks/sec)
- Return: immediately, tone continues to completion
- Notes: if another tone is already playing, the new tone does not start until
- completion of the previous one. Up to 32 tones may be queued before
- the process is blocked until a note completes.
- in DV 2.00, the lowest tone allowed is 20 Hz
- if CX = 0, the current note is cancelled; if BX = 0 as well, all queued
- notes are also cancelled
- SeeAlso: AH=82h"HUNTER",INT 16/AH=73h
- --------Q-15101A-----------------------------
- INT 15 - TopView - "OSTACK" - SWITCH TO TASK'S INTERNAL STACK
- AX = 101Ah
- Return: stack switched
- Notes: this call may not be nested; a second call must be preceded by a call
- to "USTACK" (AX=1025h)
- while TopView requires many API calls to be executed while on the
- task's internal stack, DESQview allows those calls to be executed
- regardless of the current stack
- SeeAlso: AX=1025h
- --------Q-15101B-----------------------------
- INT 15 - TopView - "BEGINC" - BEGIN CRITICAL REGION
- AX = 101Bh
- Return: task-switching temporarily disabled
- Notes: will not task-switch until "ENDC" (AX = 101Ch) called unless task
- voluntarily releases the CPU (upon regaining the CPU, task-switching
- will again be disabled)
- suspends the caller until DOS is free
- SeeAlso: AH=0Dh"MultiDOS",AX=101Ch,AX=DE13h,AX=DE1Ch,INT 2F/AX=1681h
- SeeAlso: INT 60/DI=0602h
- --------Q-15101C-----------------------------
- INT 15 - TopView - "ENDC" - END CRITICAL REGION
- AX = 101Ch
- Return: task-switching enabled
- Note: this API call may be made from within a hardware interrupt handler
- SeeAlso: AX=101Bh,AX=DE13h,AX=DE1Bh,INT 2F/AX=1682h,INT 60/DI=0603h
- --------Q-15101D-----------------------------
- INT 15 - TopView - "STOP" - STOP TASK
- AX = 101Dh
- ES = segment of object handle for task to be stopped
- (== handle of main window for that task)
- Return: indicated task will not get any CPU time until restarted with AX=101Eh
- Note: once a task has been stopped, additional "STOP"s are ignored
- BUG: in DV 2.00, this function is ignored unless the indicated task is the
- current task
- SeeAlso: AX=101Eh,AX=102Bh,AH=12h"VMiX",INT 21/AH=81h
- --------Q-15101E-----------------------------
- INT 15 - TopView - "START" - START TASK
- AX = 101Eh
- ES = segment of object handle for task to be started
- (== handle of main window for that task)
- Return: indicated task is started up again
- Note: once a task has been started, additional "START"s are ignored
- SeeAlso: AX=101Dh,AX=102Bh,INT 21/AH=82h
- --------Q-15101F-----------------------------
- INT 15 - TopView - "DISPEROR" - POP-UP ERROR WINDOW
- AX = 101Fh
- BX = bit fields
- bits 0-12: number of characters to display
- bits 13,14: which mouse button may be pressed to remove window
- 00 = either
- 01 = left
- 10 = right
- 11 = either
- bit 15: beep if 1
- ES:DI -> text of message
- CH = width of error window (0 = default)
- CL = height of error window (0 = default)
- DX = segment of object handle
- Return: BX = status: 1 = left button, 2 = right, 27 = ESC pressed
- Note: window remains on-screen until ESC or indicated mouse button is pressed
- --------Q-151020-----------------------------
- INT 15 - TopView - UNIMPLEMENTED IN DV v2.00+
- AX = 1020h
- Return: pops up "Programming error" window in DV v2.00+
- --------Q-151021-----------------------------
- INT 15 - TopView - "PGMINT" - INTERRUPT ANOTHER TASK
- AX = 1021h
- BX = segment of object handle for task to interrupt (not self)
- DX:CX -> FAR routine to jump to next time task is run
- Return: nothing
- Notes: the FAR routine is entered with the current ES, DS, SI, DI, and BP
- values, using the task's internal stack (see AX=101Ah); only SS:SP
- needs to be preserved
- multiple PGMINTs to a single task are processed last-in first-out
- if the other task is in a DOS or DV API call, the interruption will
- occur on return from that call
- --------Q-151022BX0000-----------------------
- INT 15 - TopView - "GETVER" - GET VERSION
- AX = 1022h
- BX = 0000h
- Return: BX nonzero, TopView or compatible loaded
- (BL = major version, BH = minor version)
- Notes: TaskView returns BX = 0001h, DESQview v2.00+ returns BX = 0A01h
- --------Q-151023-----------------------------
- INT 15 - TopView - "POSWIN" - POSITION WINDOW
- AX = 1023h
- BX = segment of object handle for parent window within which to
- position the window (0 = full screen)
- ES = segment of object handle for window to be positioned
- DL = general window position (see #0352)
- CH = number of columns to offset from position specified by DL
- CL = number of rows to offset from position specified by DL
- Return: nothing
-
- Bitfields for TopView general window position:
- Bit(s) Description (Table 0352)
- 0,1 horizontal position
- 00 = current, 01 = center, 10 = left, 11 = right
- 2,3 vertical position
- 00 = current, 01 = center, 10 = top, 11 = bottom
- 4 don't redraw screen if set
- 5-7 not used
- --------Q-151024-----------------------------
- INT 15 - TopView - "GETBUF" - GET VIRTUAL SCREEN INFO
- AX = 1024h
- BX = segment of object handle for window
- (0 = use default)
- Return: ES:DI -> virtual screen
- CX = size of virtual screen in bytes
- DL = 00h text screen
- 01h graphics screen
- SeeAlso: INT 10/AH=FEh,INT 21/AH=2Bh/CX=4445h
- --------Q-151025-----------------------------
- INT 15 - TopView - "USTACK" - SWITCH BACK TO USER'S STACK
- AX = 1025h
- Return: stack switched back
- Notes: call only after having switched to internal stack with AX=101Ah
- while TopView requires many API calls to be executed while on the
- task's private stack, DESQview allows those calls to be executed
- regardless of the current stack
- SeeAlso: AX=101Ah
- --------Q-1510-------------------------------
- INT 15 - DESQview (TopView???) - UNIMPLEMENTED IN DV 2.x
- AH = 10h
- AL = 26h thru 2Ah
- Return: pops up "Programming error" window in DV 2.x
- --------Q-15102B-----------------------------
- INT 15 - DESQview v2.00+ (TopView???) - "POSTTASK" - AWAKEN TASK
- AX = 102Bh
- BX = segment of object handle for task
- Return: nothing
- Note: forces a task which is waiting on its objectq to continue by placing
- the handle for the task on the objectq
- SeeAlso: AX=101Dh,AX=101Eh,INT 21/AH=82h
- --------Q-15102C-----------------------------
- INT 15 - DESQview v2.00+ - "NEWPROC" - START NEW APPLICATION IN NEW PROCESS
- AX = 102Ch
- ES:DI -> contents of .PIF/.DVP file (see #0353)
- BX = size of .PIF/.DVP info
- Return: BX = segment of object handle for new task
- 0000h on error
- SeeAlso: AX=DE24h,INT 21/AH=4Bh
-
- Format of .PIF/.DVP file:
- Offset Size Description (Table 0353)
- 00h BYTE reserved (0)
- 01h BYTE checksum of bytes 02h through 170h
- 02h 30 BYTEs blank-padded program title
- 20h WORD maximum memory to allocate to partition in KB
- 22h WORD minimum memory required in KB
- 24h 64 BYTEs ASCIZ program pathname
- 64h BYTE default drive letter ('A',...)
- 65h 64 BYTEs ASCIZ default directory name
- A5h 64 BYTEs ASCIZ program parameters
- E5h BYTE initial screen mode (0-7) (also see offset 189h)
- E6h BYTE number of text pages used
- E7h BYTE number of first interrupt to save
- E8h BYTE number of last interrupt to save
- E9h BYTE rows in virtual screen buffer
- EAh BYTE columns in virtual screen buffer
- EBh BYTE initial window position, row
- ECh BYTE initial window position, column
- EDh WORD system memory in KB
- EFh 64 BYTEs ASCIZ shared program name
- 12Fh 64 BYTEs ASCIZ shared program data file
- 16Fh BYTE program flags 1 (see #0354)
- 170h BYTE flags2
- bit 6: uses command-line parameters in field at A5h
- bit 5: swaps interrupt vectors
- ---information unique to .DVP files---
- 171h 2 BYTEs keys to use on open menu
- 173h WORD size of script buffer in bytes
- 175h WORD automatically give up CPU after this many tests for keyboard
- input in one clock tick (default 0 = never)
- 177h BYTE nonzero = "uses own colors"
- 178h BYTE nonzero if application swappable
- 179h 3 BYTEs reserved (0) according to Quarterdeck documentation
- in actual .DVP files, frequently 01h
- 17Ch BYTE nonzero to automatically close on exit (see also #0356)
- 17Dh BYTE nonzero if copy-protect floppy is required
- ---information unique to DESQview 2.0+---
- 17Eh BYTE .DVP version number
- 00h DESQview v1.2+
- 01h DESQview v2.0+
- 02h DESQview v2.2+
- 17Fh BYTE reserved (0)
- 180h BYTE initial number of rows in physical window
- 181h BYTE initial number of columns in physical window
- 182h WORD maximum expanded memory to allow, in KB
- 184h BYTE DVP program flags 3 (see #0355)
- 185h BYTE keyboard conflict level (0-4 for DV<2.26, 00h-0Fh for DV2.26+)
- (see #0357)
- 186h BYTE number of graphics pages used
- 187h WORD extra system memory size
- 189h BYTE initial screen mode (FFh = default) (overrides offset E5h)
- ---information unique to DESQview 2.2+---
- 18Ah BYTE serial port usage
- FFh uses all serial ports
- 00h no serial ports
- 01h only COM1
- 02h only COM2
- 18Bh BYTE DVP program flags 4 (see #0356)
- 18Ch BYTE protection level for 386 machines
- 18Dh 19 BYTEs reserved (0) for regular DESQview
- ---information unique to DESQview/X 1.0---
- 18Dh BYTE X flags
- bits 3-7: unused (0)
- bit 2: don't display wait message when opening window
- bit 1: don't display DOS window
- bit 0: (XNEWPROC) use DOS client layer (DOS-to-X)
- (NEWPROC) inherit DOS client layer usage
- 18Eh BYTE X keyboard behavior (0-3)
- 18Fh BYTE font scaling
- 00h fixed fonts
- 01h scalable fonts
- 190h 10 BYTEs reserved (0)
- 19Ah WORD length of data follownig XDVP signature
- 19Ch 4 BYTEs signature "XDVP"
- 1A0h N BYTEs list of variable length records (see #0358)
-
- Bitfields for .PIF/.DVP program flags 1:
- Bit(s) Description (Table 0354)
- 7 writes text directly to screen
- 6 runs in foreground only (see also #0353 offset 184h)
- 5 uses math coprocessor
- 4 accesses system keyboard buffer directly
- 3-1 reserved (0)
- 0 swappable
- SeeAlso: #0353,#0355,#0356
-
- Bitfields for .DVP program flags 3:
- Bit(s) Description (Table 0355)
- 7 automatically assign window position
- 5 maximum memory value has been specified
- 4 disallow "Close" command
- 3 foreground-only when doing graphics
- set by DV 2.3+ when "Runs in Background" = "D" (undoc)
- 2 don't virtualize (see also #0356)
- 1 foreground-only during DOS calls
- set by DV 2.3+ when "Runs in Background" = "D" (undoc)
- SeeAlso: #0353,#0354,#0356
-
- Bitfields for .DVP program flags 4:
- Bit(s) Description (Table 0356)
- 7 automatically close application on exit if .COM or .EXE specified
- (see also #0353 offset 17Ch)
- 6 swappable if not using serial ports
- 5 start program with window hidden (v2.26+)
- 4 start program in background (v2.26+)
- 3 virtualize text (see also #0355)
- 2 virtualize graphics (see also #0355)
- 1 share CPU when foreground
- 0 share EGA when foreground and zoomed
- SeeAlso: #0353,#0354,#0355
-
- Bitfields for DESQview keyboard conflict level:
- Bit(s) Description (Table 0357)
- 3 save/restore entire INT 09 handler state every taskswtch
- 2 take special precautions for programs which read the BIOS keyboard
- buffer directly from memory
- 1 never indicate keystroke available during scripts/xfers
- 0 only indicate keystroke available every sixth poll
- SeeAlso: #0353
-
- Format of DESQview/X variable length record:
- Offset Size Description (Table 0358)
- 00h WORD length of following record, 0000h if end of record list
- 02h BYTE record type
- 01h script filename, up to 64 characters
- 02h command-line parameters (allows >64 characters on cmdline)
- 03h environment inheritance
- 04h environment string
- 05h starting window position
- ---types 01h,02h,04h---
- 03h N BYTEs ASCII data
- ---type 03h---
- 03h BYTE inheritance
- 00h do not inherit
- 01h inherit environment
- ---type 05h---
- 03h N BYTEs ASCII copy of fields as typed into DVPMAN, separated by commas:
- starting row, starting column, starting height, starting width
- Note: if there are multiple occurrences of record types 01h, 02h, or 03h,
- only the last instance of each type is used; multiple occurrences of
- type 04h are concatenated
- SeeAlso: #0353
- --------Q-15102D-----------------------------
- INT 15 - DESQview v2.00+ - "KMOUSE" - KEYBOARD MOUSE CONTROL
- AX = 102Dh
- BL = subfunction
- 00h determine whether using keyboard mouse
- Return: BL = 00h using real mouse
- 01h using keyboard mouse
- 01h turn keyboard mouse on
- 02h turn keyboard mouse off
- --------Q-15102E-----------------------------
- INT 15 - DESQview v2.40+ - ALLOCATE SYSTEM MEMORY
- AX = 102Eh
- BX = number of bytes
- Return: AX = status
- 0000h successful
- ES:DI -> allocated system memory (see #0359)
- 0001h failed
- ES:DI = 0000h:0000h
- Note: under DV 2.42, this call is identical to AX=1001h
- SeeAlso: AX=1001h,AX=1002h,AX=DE0Ch
-
- Format of DESQview system memory block header:
- Offset Size Description (Table 0359)
- 00h WORD segment of next header or 0000h
- 02h WORD segment of previous header or 0000h
- 04h WORD size of block in paragraphs, including header
- 06h BYTE availability flag (00h in use, 01h free)
- Note: this header is located one paragraph before the memory block proper
- SeeAlso: #0349
- --------Q-1511-------------------------------
- INT 15 - TopView commands
- AH = 11h
- AL = various (except 17h)
- Return: varies by function
- Note: in DESQview 2.x, these function calls are identical to AH=DEh, so
- see those below
- SeeAlso: AX=DE00h,AX=DE22h,AX=DE30h
- --------T-1511-------------------------------
- INT 15 - VMiX - "sys_system" - EXECUTE SHELL SYSTEM COMMANDS
- AH = 11h
- STACK: DWORD pointer to ASCIZ string containing a VMiX shell
- request (max len = 127)
- Return: AX = status (SYS_OK or SYS_ERROR)
- SeeAlso: AH=0Ch"VMiX"
- --------T-1511-------------------------------
- INT 15 - MultiDOS Plus - TURN OFF AltZ TOGGLE
- AH = 11h
- Note: disables the Alt-Z MultiDOS command/program-selection hotkey
- SeeAlso: AH=12h"MultiDOS"
- Index: hotkeys;MultiDOS Plus
- --------Q-151117BX0000-----------------------
- INT 15 - DESQview v2.20+ - "ASSERTMAP" - GET/SET MAPPING CONTEXT
- AX = 1117h
- BX = 0000h get current mapping context without setting
- nonzero set new mapping context
- Return: BX = mapping context in effect before call
- interrupts enabled
- Notes: this function differs from AX = DE17h for DESQview v2.20 through 2.25
- mapping contexts determine conventional-memory addressability; setting
- a mapping context ensures that the associated program and data areas
- are in memory for access. Usable by drivers, TSRs and shared
- programs.
- caller need not be running under DESQview, but must ensure that the
- stack in use will not be mapped out by the call
- SeeAlso: AX=DE17h,INT 2F/AX=1685h
- --------m-1511DE-----------------------------
- INT 15 - DESQview - QEXT.SYS - INSTALLATION CHECK
- AX = 11DEh
- Return: CF clear if installed
- AX = segment at which QEXT.SYS is located
- Desc: QEXT.SYS is Quarterdeck's HMA manager for DESQview; more recent
- versions also implement the XMS standard
- Note: a private entry point (see #0360) may be found by searching the
- beginning of the returned segment for the signature string
- "QUARTERDECK EXTENDED MEMORY MANAGER 286"; the word immediately
- prior to the signature contains the QEXT version number in BCD,
- and the word prior to that contains the offset within the QEXT
- code segment of the private entry point
- SeeAlso: INT 2F/AX=4310h"XMS",INT 67/AH=3Fh
-
- (Table 0360)
- Call QEXT.SYS private entry point with:
- AH = 00h ???
- AH = nonzero ???
- --------!---Section--------------------------
- Interrupt List, part 3 of 16
- Copyright (c) 1989,1990,1991,1992,1993,1994,1995,1996,1997 Ralf Brown
- --------T-1512-------------------------------
- INT 15 - VMiX - "sys_sleep" - PUT PROCESS TO SLEEP
- AH = 12h
- STACK: WORD process ID
- Return: AX = status (SYS_OK or SYS_ERROR)
- SeeAlso: AH=03h"MultiDOS",AX=101Dh,AH=13h"VMiX"
- --------T-1512-------------------------------
- INT 15 - MultiDOS Plus - TURN ON AltZ TOGGLE
- AH = 12h
- Note: enables the Alt-Z MultiDOS command/program-selection hotkey
- SeeAlso: AH=11h"MultiDOS"
- Index: hotkeys;MultiDOS Plus
- --------Q-1512--BH00-------------------------
- INT 15 - TopView - SEND MESSAGE - "HANDLE" - RETURN OBJECT HANDLE
- AH = 12h
- BH = 00h
- BL = which handle to return
- 00h handle in DWORD on top of stack
- 01h current task's window handle
- 02h given task's mailbox handle (task's handle on stack)
- 03h current task's mailbox handle
- 04h given task's keyboard handle (task's handle on stack)
- 05h current task's keyboard object handle
- 06h given task's OBJECTQ handle (task's handle on stack)
- 07h current task's OBJECTQ handle
- 08h \
- thru > return 0000:0000 under DV < 2.26
- 10h /
- 0Ch (2.26+) task owning object with handle in DWORD on top of stack
- 0Dh (2.26+) task handle of owner (parent) of current task
- Return: DWORD on top of stack is object handle
- Note: BL=0Ch,0Dh returns 00000000h if the object is not open (keyboard,
- mailbox, panel, pointer, and timer objects) or is an orphan (task,
- window)
- SeeAlso: AH=12h/BH=02h,AH=12h/BH=80h
- --------Q-1512--BH01-------------------------
- INT 15 - TopView - SEND MESSAGE - "NEW" - CREATE NEW OBJECT
- AH = 12h
- BH = 01h
- BL = object type to create (see #0361)
- STACK: (only if window object or WINDOW class)
- DWORD address to jump to (no new task if high word == 0)
- DWORD (reserved) 0 = non-task window, FFFFh = task window
- DWORD bytes for task's private stack (FFFFh == default of 0100h)
- DWORD bytes system memory for input buffer for READ/READN
- (0 == none, -1 == default--same as logical window size)
- DWORD window size, columns
- DWORD window size, rows
- DWORD length of window title
- DWORD address of window title
- Return: DWORD on top of stack is new object handle
- Notes: if a new task is created, it is started with
- AX = BX = SI = DI = BP = 0
- DX:CX = handle of parent task
- DS = ES = SS = segment of private stack (and new task's handle)
- new windows are orphans, inherit the colors/hidden status of the
- creating task's window, and are placed in the upper left hand corner
- of the screen but not automatically redrawn
- new keyboards are closed, and have all object bits cleared except for
- the hardware cursor bit
- SeeAlso: AH=12h/BH=02h,AH=12h/BH=81h
-
- (Table 0361)
- Values for TopView/DESQview object type (for creation):
- 00h (DV 2.0x only) handle is DWORD on top of stack
- 01h (DV 2.0x only) use task's window handle
- 02h (DV 2.0x only) given task's mailbox (task's handle on stack)
- 03h (DV 2.0x only) current task's mailbox
- 04h (DV 2.0x only) given task's keyboard (task's handle on stack)
- 05h (DV 2.0x only) current task's keyboard object
- 08h WINDOW class
- 09h MAILBOX class
- 0Ah KEYBOARD class
- 0Bh TIMER object (counts down 32-bit time in 10ms increments)
- 0Fh POINTER object
- 10h PANEL object
- --------Q-1512--BH02-------------------------
- INT 15 - TopView - SEND MESSAGE - "FREE" - FREE AN OBJECT
- AH = 12h
- BH = 02h
- BL = object
- 00h handle in DWORD on top of stack
- window: close window and free
- timer: free timer
- panel: free panel object
- pointer: free pointer
- 01h task's window handle - kills task, never returns
- 02h given task's mailbox (task's handle on top of stack)
- 03h current task's mailbox
- 04h given task's keyboard (task's handle on top of stack)
- 05h current task's keyboard object
- Return: STACK popped if handle passed on stack
- Notes: when a window is freed, its keyboard and pointer objects are freed;
- task windows also free any mailbox, objectq, and panel objects held
- by the task and any child tasks
- if the keyboard being freed is the default keyboard for a task, this
- call is equivalent to CLOSE
- panel and pointer objects are automatically closed if open
- SeeAlso: AH=12h/BH=01h,AH=12h/BH=0Dh,AH=12h/BH=82h
- --------Q-1512--BH03-------------------------
- INT 15 - TopView - SEND MESSAGE - "ADDR" - GET HANDLE OF MESSAGE SENDER
- AH = 12h
- BH = 03h
- BL = object
- 00h mailbox handle in DWORD on top of stack
- 02h sender of last msg read from mailbox (task's handle on stack)
- 03h sender of last msg read from current task's mailbox
- Return: DWORD on stack is task handle of message sender
- SeeAlso: AH=12h/BH=00h,AH=12h/BH=83h
- --------Q-1512--BH03-------------------------
- INT 15 - DESQview v2.26+ - "CONNECT" - CONNECT TWO WINDOWS
- AH = 12h
- BH = 03h
- BL = window to be connected
- 00h handle of window to be attached in DWORD on top of stack
- 01h attach current task's main window
- STACK: DWORD handle of window to attach to or 00000000h to detach
- Return: STACK popped
- Notes: when two windows are connected, both will move if the user moves either
- multiple windows may be attached to a single window, but each window
- may only be attached to one window at a time
- SeeAlso: AH=12h/BH=83h
- --------Q-1512--BX0300-----------------------
- INT 15 - TopView - SEND MESSAGE - "DIR" - GET PANEL FILE DIRECTORY
- AH = 12h
- BX = 0300h
- STACK: DWORD handle of panel object (see #0362)
- Return: STACK: DWORD length of directory (always multiple of 14 bytes)
- DWORD address of directory
- Note: a null string is returned if the object is not open
- SeeAlso: AH=12h/BX=0400h"APPLY",AH=12h/BH=83h
-
- Format of TopView panel file:
- Offset Size Description (Table 0362)
- 00h 2 BYTEs C0h C3h
- 02h BYTE number of panels in file
- 03h for each panel in file:
- 8 BYTEs blank-padded panel name
- DWORD panel offset in file
- WORD panel length
- data for panels (each consists of one or more window/query/manager
- streams); first byte of each panel must be 1Bh, fifth byte must be
- E5h
- --------Q-1512--BH04-------------------------
- INT 15 - TopView - SEND MESSAGE - "READ" - READ NEXT LOGICAL LINE OF WINDOW
- AH = 12h
- BH = 04h
- BL = window to read from
- 00h handle is DWORD on top of stack
- 01h use calling task's default window
- 0Ch (DV 2.26+) default window of task owning handle on top of stack
- 0Dh (DV 2.26+) default window of parent task of current task
- Return: STACK: DWORD number of bytes read
- DWORD address of buffer
- Notes: reading starts at the current logical cursor position; the cursor is
- updated to point at the character following the last one read
- any translucent blanks (FFh) which are visible on screen are changed
- to the character which is seen through them
- the string produced by the read is placed in an input buffer which may
- be reused by the next READ or READN of a window
- window stream opcodes D8h and D9h determine whether the read returns
- characters or attributes
- SeeAlso: AH=12h/BH=05h"WINDOW",AH=12h/BH=12h,AH=12h/BH=84h
- --------Q-1512--BH04-------------------------
- INT 15 - TopView - SEND MESSAGE - "READ" - GET NEXT RECORD FROM OBJECT
- AH = 12h
- BH = 04h
- BL = object
- 00h handle is DWORD on top of stack
- mailbox: wait for and get next message
- keyboard: wait for and get pointer to next input buffer
- pointer: wait for and get next message
- 02h get next message from mailbox (task's handle on top of stack)
- 03h get next message from current task's mailbox
- 04h get the next input from keyboard (handle on top of stack)
- 05h get the next input from task's default keyboard
- 06h wait for input from any object in OBJECTQ (handle on stack)
- 07h wait for input from any object in task's default OBJECTQ
- Return: STACK: (if objectq) DWORD handle of object with input
- (otherwise) DWORD number of bytes
- DWORD address of pointer message (see #0363)
- Notes: for a keyboard in keystroke mode, the input buffer is a single byte
- containing the character code as returned by the BIOS; the BIOS scan
- code is available via the STATUS call if the character is zero
- for a keyboard in field mode, the input buffer format is determined
- by the field table header for the window the keyboard is attached to
- keyboard input buffers and mailbox message buffers may be invalidated
- by the next READ, ERASE, CLOSE, or FREE message to the same object
- SeeAlso: AH=12h/BH=05h"OBJECT",AH=12h/BH=84h
-
- Format of DESQview pointer message:
- Offset Size Description (Table 0363)
- 00h WORD row
- 02h WORD column
- 04h BYTE status (see #0364)
- 05h BYTE field number or zero (APILEVEL >= 2.00 only)
-
- Bitfields for DESQview pointer status:
- Bit(s) Description (Table 0364)
- 7-2 number of clicks-1 if multiple-click mode active
- 7 set when press/release mode active and button pressed
- 6 set when press/release mode active and button released
- 1-0 button pressed (00=none,01=button1,10=button2)
- SeeAlso: #0363
- --------Q-1512--BX0400-----------------------
- INT 15 - TopView - SEND MESSAGE - "READ" - WAIT FOR TIMER TO EXPIRE
- AH = 12h
- BX = 0400h
- STACK: DWORD timer's handle
- Return: after timer expires
- STACK: DWORD time in 1/100 sec after midnight when timer expired
- SeeAlso: AH=12h/BH=0Ah,AH=12h/BH=84h
- --------Q-1512--BX0400-----------------------
- INT 15 - TopView - SEND MESSAGE - "APPLY" - WRITE PANEL TO WINDOW
- AH = 12h
- BX = 0400h
- STACK: DWORD handle of panel object
- DWORD window's handle (or 0 for current task's window)
- DWORD length of panel name
- DWORD pointer to panel name
- Return: STACK: DWORD handle of window which was used
- DWORD handle of keyboard or 0
- Notes: status of APPLY may be checked with STATUS message
- panel MUST have the following format
- first byte must be 1Bh (i.e. must start with a stream)
- first opcode in stream must be E5h
- single byte arg of opcode is interpreted thus:
- bits 7,6 11 means create new window
- 10 means create new field table for existing window
- 01 means use existing window and field table
- bit 5 if set, panel contains a field table
- (creates a new keyboard and puts it in field mode)
- bit 4 if set, panel contains input fields
- bit 3 if set, panel contains select fields but no input fields
- if the panel contains input or select fields, a keyboard handle is
- returned; either the window's current open keyboard or a
- newly-created keyboard object. The caller should read that keyboard
- to obtain input from the panel.
- SeeAlso: AH=12h/BH=84h
- --------Q-1512--BH05------------------------
- INT 15 - TopView - SEND MESSAGE - "WRITE" - WRITE TO OBJECT
- AH = 12h
- BH = 05h
- BL = object
- 00h handle is DWORD on top of stack
- timer: start timer to end at a specified time
- keyboard: add input buffer to queue
- pointer: move pointer icon to specified position
- 02h send message by value/status=0 to mbox (task's handle on stack)
- 03h send message by value/status=0 to current task's mailbox
- 04h add input buffer to KEYBOARD queue (handle on top of stack)
- 05h add input buffer to task's default KEYBOARD queue
- 06h add an object to OBJECTQ (handle on top of stack)
- 07h add an object to task's default OBJECTQ
- STACK: (if mailbox) DWORD length
- DWORD address
- (if keyboard) DWORD status (scan code in keystroke mode)
- DWORD length (should be 1 in keystroke mode)
- DWORD address
- (if objectq) DWORD handle of object to add
- (if timer) DWORD 1/100ths seconds since midnight (actually
- only accurate to 1/18 sec)
- (if pointer) DWORD column relative to origin of window
- DWORD row relative to origin of window
- Return: STACK popped
- Notes: under DV 2.2+, failed mailbox writes may return CF set (see AX=DE15h)
- the data and status written to a keyboard object must match the format
- returned by the keyboard object in the current mode
- the pointer position is scaled according to the current scaling factors
- SeeAlso: AH=12h/BH=04h,AH=12h/BH=85h
- --------Q-1512--BH05-------------------------
- INT 15 - TopView - SEND MESSAGE - "WRITE" - WRITE STRING TO WINDOW
- AH = 12h
- BH = 05h
- BL = window to write to
- 00h DWORD on top of stack is window handle
- 01h write string to task's default window
- 0Ch (DV 2.26+) default window of task owning handle on top of stack
- 0Dh (DV 2.26+) default window of parent of current task
- STACK: DWORD object handle if handle passed on stack
- DWORD total length of string (high word == 0)
- DWORD address of string to display (see #0365)
- Return: indicated actions performed
- a. non-control characters are displayed (opcodes DEh and DFh control
- whether the attributes are left or changed to the current attrib)
- b. CR/LF/BS/Tab cause the usual cursor movement
- c. ESC starts a data structure with additional commands if following
- byte is less than 20h; otherwise, it is written to the window
- STACK: DWORD handle of new window if window stream opcode E6h
- else nothing (arguments have been popped)
- SeeAlso: AH=12h/BH=04h,AH=12h/BH=85h
-
- Format of stream data structure:
- Offset Size Description (Table 0365)
- 00h BYTE 1Bh magic value identifying start of stream
- 01h BYTE stream type (00h, 01h, 10h, 14h-1Fh legal)
- (see #0366,#0372,#0373,#0374)
- 02h WORD length of remainder of stream in bytes
- var-length fields follow, each an OPCODE followed by
- zero or more args
-
- (Table 0366)
- Values for MODE 00h (set or display values) "WINDOW STREAM" opcodes:
- Opcodes:args
- 00h display 20h blanks with the default attribute
- 01h-1Fh display OPCODE blanks with the default attribute
- 20h display char with default attribute 20h times
- BYTE char to repeat
- 21h-3Fh display char with default attribute OPCODE-20h times
- BYTE char to repeat
- 40h display 20h blanks with specified attribute
- BYTE attribute of blanks
- 41h-5Fh display OPCODE-40h blanks with specified attribute
- BYTE attribute of blanks
- 60h display next 20h characters
- 20h BYTEs characters to display
- 61h-7Fh display next OPCODE-60h characters
- N BYTEs characters to display
- 80h-87h display N blanks with default attribute
- BYTE low 8 bits of 11-bit count (high 3 in low 3 bits of OPCODE)
- [000h means 800h]
- 88h-8Fh display N copies of the character
- BYTE low 8 bits of 11-bit count (high 3 in low 3 bits of OPCODE)
- [000h means 800h]
- BYTE character to repeat
- 90h-97h display N blanks with specified attribute
- BYTE low 8 bits of 11-bit length (high 3 in low 3 bits of OPCODE)
- [000h means 800h]
- BYTE attribute
- 98h-9Fh display string at logical cursor pos
- BYTE low 8 bits of 11-bit length (high 3 in low 3 bits of OPCODE)
- [000h means 800h]
- N BYTEs string to display
- A0h set logical cursor row
- BYTE row number (0 is top)
- A1h set logical cursor column
- BYTE column number (0 is leftmost)
- A2h set top edge of scrolling region
- BYTE row
- A3h set left edge of scrolling region
- BYTE column
- A4h set row of physical window position
- BYTE line
- A5h set column of physical window position
- BYTE column
- A6h set height of physical window
- BYTE number of rows
- A7h set width of physical window
- BYTE number of columns
- A8h set viewport row
- BYTE row
- A9h set viewport column
- BYTE column
- AAh set virtual screen height [contents of window unpredictable after]
- BYTE rows
- ABh set virtual screen width [contents of window unpredictable after]
- BYTE columns
- ACh-AEh unused
- AFh set compatible/preferred video modes
- BYTE compatibility/preference mask
- bit 7 compatible with monochrome
- bit 6 compatible with color text, EGA/VGA graphics
- bit 5 compatible with medium-resolution CGA graphics
- bit 4 compatible with high-resolution CGA graphics
- bit 3 prefer monochrome
- bit 2 prefer color text, EGA/VGA graphics
- bit 1 prefer medium-resolution CGA graphics
- bit 0 prefer high-resolution CGA graphics
- B0h move logical cursor down
- BYTE number of rows (signed, negative values move up)
- [if rows=0 and hardware cursor owner, update hardware cursor]
- B1h move logical cursor right
- BYTE number of columns (signed, negative values move left)
- [if cols=0 and hardware cursor owner, update hardware cursor]
- B2h shift top edge of scrolling region
- BYTE number of rows (signed)
- B3h shift left edge of scrolling region
- BYTE number of columns (signed)
- B4h shift physical window down
- BYTE number of lines (signed)
- B5h shift physical window right
- BYTE number of columns (signed)
- B6h expand physical window vertically
- BYTE number of lines (signed)
- B7h expand physical window horizontally
- BYTE number of columns (signed)
- B8h adjust viewport row
- BYTE number of rows (signed)
- B9h adjust viewport column
- BYTE number of columns (signed)
- BAh adjust virtual screen height [contents of window unpredict after]
- BYTE number of rows to increase (signed)
- BBh adjust virtual screen width [contents of window unpredictbl after]
- BYTE number of columns to increase (signed)
- BCh-BFh reserved (currently unused)
- C0h set logical cursor position
- BYTE row number (0 is top border)
- BYTE column number (0 is left border)
- C1h set top left corner of scrolling region
- BYTE row
- BYTE column
- C2h set physical window pos
- BYTE upper left row (no top border if 0)
- BYTE upper left column (no left border if 0)
- C3h set current window size
- BYTE number of rows
- BYTE number of columns
- C4h set upper left corner of viewport (portion of virtual screen displayed
- in window)
- BYTE row
- BYTE column
- C5h set size of virtual screen [contents unpredictable afterwards]
- BYTE number of rows
- BYTE number of columns
- C6h unused
- C7h unused
- C8h set logical cursor relative to current position
- BYTE number of rows to move down (signed)
- BYTE number of columns to move right (signed)
- [if rows=cols=0 and hardware cursor owner, update hardw cursor]
- C9h shift top left corner of scrolling region
- BYTE number of rows (signed)
- BYTE number of columns (signed)
- CAh set window pos relative to current position
- BYTE number of rows to shift down (signed)
- BYTE number of columns to shift right (signed)
- CBh set window size relative to current size
- BYTE number of rows to expand (signed)
- BYTE number of cols to expand (signed)
- CCh shift viewport relative to current position
- BYTE rows to shift (signed)
- BYTE cols to shift (signed)
- CDh resize virtual screen
- BYTE number of rows to expand (signed)
- BYTE number of columns to expand (signed)
- CEh scroll text when using E8h-EBh/F8h-FBh opcodes (default)
- CFh scroll attributes when using E8h-EBh/F8h-FBh opcodes
- D0h allow window frame to extend beyond screen
- D1h always display a complete frame, even if window extends beyond edge of
- screen
- D2h allow DV to change logical colors on video mode switch (default)
- D3h application changes logical attributes
- D4h window is visible [must redraw to actually make visible]
- D5h window is hidden [must redraw to actually remove]
- D6h window has frame (default)
- D7h window unframed [must redraw to actually remove frame]
- D8h READ/READN will read characters from window (default)
- D9h READ/READN will read attributes from window
- DAh use logical attributes, which may be remapped (see #0367)
- DBh use physical attributes for characters
- DCh enable special actions for control characters (default)
- DDh disable special control char handling, all chars displayable by BIOS TTY
- call
- DEh write both character and attribute (default)
- DFh write character only, leave attribute untouched
- E0h repeat following commands through E1h opcode
- BYTE number of times to repeat (00h means 256 times)
- E1h end of commands to repeat, start repeating them
- E2h set current output color
- BYTE color
- E3h clear virtual screen from scroll origin to end using current color
- E4h redraw window
- E5h select menu style
- BYTE style (normally 18h)
- bits 5,4 = 01 use two-letter menu entries for remainder of
- this stream
- E5h (panel file only)
- BYTE modifier
- bits 7,6 = 11 panel stream creates new window
- = 10 panel defines new field table for existing window
- = 01 panel stream uses existing window & field table
- bit 5 = 1 stream contains a field table (create kyboard object)
- bit 4 = 1 stream defines input fields (create keyboard object)
- bit 3 = 1 stream defines select fields but not input fields
- bit 2 = 1 stream defines exclusive input window (DV 2.2)
- bit 1 reserved
- bit 0 reserved
- E6h create new window and perform rest of manipulations in new window
- BYTE number of rows
- BYTE number of columns
- Return: DWORD object handle of new window returned on stack at end
- Note: the window is created with a physical size of 0x0 at the
- same position as the window to which this stream was sent
- E7h no operation
- E8h scroll area up (top left corner defined by opcode C1h)
- BYTE height
- BYTE width
- E9h scroll area down (top left corner defined by opcode C1h)
- BYTE height
- BYTE width
- EAh scroll area left (top left corner defined by opcode C1h)
- BYTE height
- BYTE width
- EBh scroll area right (top left corner defined by opcode C1h)
- BYTE height
- BYTE width
- ECh set logical attributes for window contents
- BYTE video modes command applies to
- bit 7 monochrome
- bit 6 color text, EGA/VGA graphics
- bit 5 medium-resolution CGA graphics
- bit 4 high-resolution CGA graphics
- BYTE which attributes to set
- bit 7 if set, copy single following byte to indicated attribs
- bits 4-6 number of first attribute to change - 1
- bits 0-3 number of consecutive attributes to change
- N BYTEs new attributes
- EDh set logical attributes for window frame
- BYTE video modes command applies to (also see opcode ECh)
- BYTE which attributes to set
- bit 7 if set, copy single following byte to indicated attrs
- bits 4-6 number of first attribute to change - 1
- bits 0-3 number of consecutive attributes to change
- N BYTEs new attributes
- attributes
- 1 = top left corner
- 2 = top right corner
- 3 = bottom left corner
- 4 = bottom right corner
- 5 = top edge
- 6 = bottom edge
- 7 = left edge
- 8 = right edge
- EEh set characters for window frame
- BYTE video modes command applies to (also see opcode ECh)
- BYTE which characters to set
- bit 7 if set, copy single following byte to indicated chars
- bits 4-6 number of first character to change - 1
- bits 0-3 number of consecutive characters to change
- N BYTEs new chars (same relative position as attributes above)
- EFh set window name
- BYTE length of name (should be in range 0 to logical screen width)
- N BYTEs name
- F0h clear input field to blanks
- BYTE field number
- F1h fill input field with character
- BYTE field number
- BYTE char
- F2h set color of input field
- BYTE field number (1-N)
- BYTE attribute
- F3h set initial contents of input field
- BYTE field number (1-N)
- N BYTEs enough chars to exactly fill field as defined by op FFh
- F4h position cursor to start of specific input field
- BYTE field number (1-N)
- F5h change field table entry
- BYTE field number
- 7-8 BYTEs field table entry (also see opcode FFh below)
- F6h set field type
- BYTE field number
- BYTE type
- 00h inactive
- 40h output field
- 80h input field
- C0h deselected field
- C2h selected field
- F7h "broadcast write" write data to fields with program output bit set in
- the field table entry, in field number order
- N BYTEs (total length of all program output fields)
- F8h scroll field up a line
- BYTE field number
- F9h scroll field down a line
- BYTE field number
- FAh scroll field left
- BYTE field number
- FBh scroll field right
- BYTE field number
- FCh set field table header
- 6 BYTEs field table header (see #0368)
- FDh reset modified bit for all fields
- FEh reset selected and modified bits for all fields
- FFh set up input fields
- 6 BYTEs table header (see #0368)
- 7/8N BYTEs the field table entries, one for each field (see #0370)
- Note: DESQview uses and updates the actual copy of the information
- which is contained in the stream. Thus this info must remain
- intact until after the data entry is complete.
- SeeAlso: #0365,#0372
-
- (Table 0367)
- Values for TopView logical attributes:
- 01h normal text
- 02h highlighted normal text
- 03h help text
- 04h highlighted help text
- 05h error message
- 06h highlighted error message
- 07h emphasized text
- 08h marked text
- 9-16 reverse video versions of 1-8
- SeeAlso: #0366
-
- Format of TopView field table header:
- Offset Size Description (Table 0368)
- 00h BYTE number of fields (must be <= existing number of fields)
- 01h BYTE screen behavior bits (see #0369)
- 02h BYTE current input field (updated by DESQview)
- 03h BYTE current select field (updated by DESQview)
- 04h BYTE attribute for select fields when they are pointed at
- 05h BYTE attribute for select fields which have been selected
- SeeAlso: #0366,#0370
-
- Bitfields for TopView screen behavior bits:
- Bit(s) Description (Table 0369)
- 7 reserved
- 6 menu items may be selected via keyboard
- 5 left mouse button in "status" mode (press anywhere in window
- immediately returns control to application)
- 4 right mouse button in "status" mode
- 3 select fields return contents or blanks rather than 'Y' or 'N'
- 2 modified bits reset on return to application
- 1-0 type of data returned
- 00 no data returned on read of keyboard
- 01 data returned as array of characters containing all fields packed
- together, with no field numbers
- 10 data returned as numbered variable-length records for all fields
- 11 data returned as numbered variable-length records for the fields
- which were modified
- SeeAlso: #0366
-
- Format of TopView field table entry:
- Offset Size Description (Table 0370)
- 00h BYTE start row \
- 01h BYTE start column \ if menu selection and start is to
- 02h BYTE end row / right or below end, select from kbd only
- 03h BYTE end column /
- 04h BYTE field type (see #0371)
- 05h BYTE modifier
- if type is fill-in, then bit flags to determine behavior
- bit 7 automatically enter CR when field full
- bit 6 move to next field when current field is full
- bit 5 enter text from right end (for numbers)
- bit 4 force input to uppercase
- bit 3 clear old contents on first keystroke
- bit 2 input returned when cursor moves out of
- modified field ("validate", API level 2.02+)
- bit 1 reserved
- bit 0 reserved
- if select field, first key to press to activate
- 00h if have to point-&-click or is an extended-ASCII
- keystroke (only if two-key menus enabled)
- 06h BYTE (select field only) normal color of field
- 07h BYTE second key for select field. This byte is present iff
- two-letter menu entries selected with opcode E5h, and in that
- case is present regardless of field type
- SeeAlso: #0368
-
- Bitfields for TopView field type:
- Bit(s) Description (Table 0371)
- 7,6 field class
- 00 inactive (non-entry) field
- 01 echos keystrokes input to make menu selection
- 10 fill-in field
- 11 select field
- 5 field can be filled by broadcast write (F7h opcode)
- 4 reserved
- 3 reserved
- 2 reserved
- 1 set if field selected
- 0 set if field modified
- SeeAlso: #0370
-
- (Table 0372)
- Values for MODE 01h "QUERY STREAM" opcodes:
- (valid only for those opcodes listed here)
- A0h return logical cursor row in next byte
- A1h return logical cursor column in next byte
- A2h return top row of scrolling region in next byte
- A3h return left column of scrolling region in next byte
- A4h return row of physical window origin in next byte
- A5h return column of physical window origin in next byte
- A6h return height of physcial window in next byte
- A7h return width of physical window in next byte
- A8h return row of viewport origin in next byte
- A9h return column of viewport origin in next byte
- AAh return height of virtual screen in next byte
- ABh return width of virtual screen in next byte
- AFh return current video mode in next byte
- C0h return current logical cursor position in next two bytes
- C1h return top left corner of scrolling region in next two bytes
- C2h return current window position in next two bytes
- C3h return current window size in next two bytes
- C4h return current viewport origin in next two bytes
- C5h return current virtual screen size in next two bytes
- D0h \ overwritten with D0h if frames may fall off screen edge
- D1h / D1h if frames always displayed entirely
- D2h \ overwritten with D2h if DESQview controls color palette
- D3h / D3h if application changes color palette
- D4h \ overwritten with D4h if window visible
- D5h / D5h if window hidden
- D6h \ overwritten with D6h if window has frame
- D7h / D7h if window unframed
- D8h \ overwritten with D8h if reading characters from window
- D9h / D9h if reading attributes from window
- DAh \ overwritten with DAh if using logical attributes
- DBh / DBh if using physical attributes
- DCh \ overwritten with DCh if TTY control char interpretation on
- DDh / DDh if TTY control char interpretation off
- DEh \ overwritten with DEh if writing both characters and attributes
- DFh / DFh if leaving attributes untouched
- E2h return current color in next byte
- ECh get logical attributes for window contents
- BYTE execute call if currently in specified video mode
- bit 7 monochrome
- bit 6 color text, EGA/VGA graphics
- bit 5 medium-resolution CGA graphics
- bit 4 high-resolution CGA graphics
- BYTE which attributes to get
- bit 7 unused???
- bits 4-6 first attribute to get - 1
- bits 0-3 number of consecutive attributes
- N BYTEs buffer to hold attributes
- EDh get logical attributes for window frame
- BYTE execute call if currently in video mode (also see opcode ECh)
- BYTE which attributes to get
- bit 7 unused???
- bits 4-6 first attribute to get - 1
- bits 0-3 number of consecutive attributes
- N BYTEs buffer to hold attributes
- EEh get characters for window frame
- BYTE execute call if currently in video mode (also see opcode ECh)
- BYTE which attributes to get
- bit 7 unused???
- bits 4-6 first char to get - 1
- bits 0-3 number of consecutive chars
- N BYTEs buffer to hold chars
- EFh return first N characters of current window name
- BYTE max length of returned name
- N BYTEs buffer to hold window name
- F3h return contents of specified field
- BYTE field number
- N BYTEs buffer to hold field contents (size equal to field size)
- F5h get field table entry
- BYTE field number
- 7-8 BYTEs buffer to hold field table entry (see #0370)
- Notes: DV < 2.26 always returns 7 bytes
- DV 2.26+ w/ APILEVEL < 2.26 returns 8 bytes iff field table
- is using 8-byte entries and eighth byte after F5h is E7h
- (NOP); otherwise, 7 bytes are returned
- DV 2.26+ w/ APILEVEL > 2.26 returns 7 or 8 bytes depending
- on the field table entry size
- F6h get type of a field
- BYTE field number
- BYTE type
- FCh get field table header
- 6 BYTEs buffer to store field table header (see #0368)
- SeeAlso: #0365,#0373
-
- (Table 0373)
- Values for MODE 10h "MANAGER STREAM" opcodes (valid only for those listed):
- 00h allow window to be moved horizontally
- 01h allow window to be moved vertically
- 02h allow window to change width
- 03h allow window to change height
- 04h allow window to be scrolled horizontally
- 05h allow window to be scrolled vertically
- 06h allow "Close Window" menu selection for application
- 07h allow "Hide Window" menu selection for application
- 08h allow application to be suspended ("Rearrange/Freeze")
- 0Eh allow "Scissors" menu
- 10h allow DESQview main menu to be popped up
- 11h allow "Switch Windows" menu
- 12h allow "Open Window" menu
- 13h allow "Quit" menu selection
- 20h-33h opposite of 00h-13h, disallow specified action
- 40h notify if horizontal position of window changes
- 41h notify if vertical position of window changes
- 42h notify if width of window changes
- 43h notify if height of window changes
- 44h notify if window scrolled horizontally
- 45h notify if window scrolled vertically
- 46h notify if window is closed--program has to clean up and exit itself
- 47h notify if window is hidden
- 48h notify if "?" on main menu selected
- 49h notify if pointer message sent to window
- 4Ah notify if window is placed in foreground
- 4Bh notify if window is placed in background
- 4Ch notify if video mode changes
- 4Dh notify if "Scissors" menu "Cut" option selected
- 4Eh notify if "Scissors" menu "Copy" option selected
- 4Fh notify if "Scissors" menu "Paste" option selected
- 50h notify if DESQview main menu about to pop up
- 51h notify if DESQview main menu popped down
- 60h-71h opposite of 40h-51h: don't notify on specified event
- 84h attach window to parent task's window (both move together)
- 85h detach window from parent task's window (may move independently)
- 86h disable background operation for application
- 87h enable running in background
- 88h set minimum size of physical window
- BYTE rows
- BYTE columns
- 89h set maximum size of physical window
- BYTE rows
- BYTE cols
- 8Ah set primary asynchronous notification routine (see #0375)
- DWORD address of routine, 0000h:0000h means none (see also below)
- 8Bh set async notification parameter
- DWORD 32-bit value passed to 8Ah async routine in DS:SI
- ACh (DV2.2+) perform regular select field attribute processing
- ADh (DV2.2+) protect attributes in selected field from being lost
- AEh make window default notify window for owning app (API level 2.00+)
- AFh set selected field marker character
- BYTE character to display at left edge of selected fields
- BCh set standard field processing mode
- BDh set alternate field processing mode (enables cursor pad for menus)
- BEh disables changing reverse logical attributes with ECh opcode
- BFh enables changing reverse logical attributes with ECh opcode
- C0h make current window topmost in system
- C1h force current process into foreground
- C2h make current window topmost in process
- C3h position mouse pointer relative to origin of current field
- BYTE rows below upper left corner of field
- BYTE columns to right of upper left corner of field
- C4h position mouse pointer relative to origin of given field
- BYTE field number
- BYTE rows below upper left corner of field
- BYTE columns to right of upper left corner of field
- C5h orphan current window (also hides it)
- Note: must be last in stream; all subsequent commands ignored
- C6h show all windows for this process
- C7h hide all windows for this process
- C8h suspend process and hide all its windows
- C9h force current process into background
- CAh make current window bottom-most in process
- CBh cancel current window manager operation, remove DV menu, give control
- to topmost application
- CCh orphan window and give it to the system for use as paste data
- CEh reorder windows
- DWORD pointer to null-terminated list of words; each word is segment
- of object handle for a window
- FFh no operation
- SeeAlso: #0365,#0372,#0374
-
- (Table 0374)
- Values for MODES 14h to 1Fh "USER STREAMS":
- normally NOPs, but may be defined by SETESC message to invoke FAR
- routines, one for each mode number
- on entry to handler,
- DS:SI -> first byte of actual stream (not header)
- CX = number of bytes in stream
- ES:DI = window's handle
- SeeAlso: #0372,#0373
-
- (Table 0375)
- Values asynchronous notification routine defined by man.stream 8Ah called with:
- ES:DI = handle of window
- DS:SI is 32-bit value set by 8Bh manager stream opcode
- mailbox contains message indicating event
- Opcode
- 40h horizontal movement
- DWORD object handle of window
- BYTE new row
- BYTE new col
- 41h vertical movement
- DWORD object handle of window
- BYTE new row
- BYTE new col
- 42h horizontal size change
- DWORD object handle of window
- BYTE new rows
- BYTE new cols
- 43h vertical size change
- DWORD object handle of window
- BYTE new rows
- BYTE new cols
- 44h scrolled horizontally
- DWORD object handle of window
- BYTE mouse row within window
- BYTE mouse column within window
- BYTE field mouse is on, 0 if none
- BYTE amount moved: >0 right, <0 left, 0 done
- 45h scrolled vertically
- DWORD object hande of window
- BYTE mouse row within window
- BYTE mouse column within window
- BYTE field mouse is on, 0 if none
- BYTE amount moved: >0 down, <0 up, 0 done
- 46h window close request
- DWORD object handle of window
- BYTE mouse pointer row
- BYTE mouse pointer column
- BYTE field mouse is on, 0 if none
- 47h application's windows hidden
- 48h Help for Program selected
- DWORD object handle of window
- BYTE mouse pointer row
- BYTE mouse pointer column
- BYTE field mouse is on, 0 if none
- 49h pointer message sent to window
- DWORD pointer handle which received message
- 4Ah switched to window from another ("raise")
- 4Bh switched away from the window ("lower")
- 4Ch video mode changed
- BYTE new BIOS video mode
- 4Dh Scissors/cUt selected
- DWORD object handle of window
- BYTE row of upper left corner
- BYTE column of upper left corner
- BYTE field number ul corner is in, 0=none
- DWORD handle of orphaned window created with
- copy of data from specified region
- BYTE height of region
- BYTE width of region
- 4Eh Scissors/Copy selected
- DWORD object handle of window
- BYTE row of upper left corner
- BYTE column of upper left corner
- BYTE field number ul corner is in, 0=none
- DWORD handle of orphaned window created with
- copy of data from specified region
- BYTE height of region
- BYTE width of region
- 4Fh Scissors/Paste selected
- DWORD object handle of window
- BYTE row of upper left corner
- BYTE column of upper left corner
- BYTE field number ul corner is in, 0=none
- DWORD handle of orphaned window with data
- BYTE height of region
- BYTE width of region
- Note: orphaned data window should be adopted or freed
- when done
- 50h main menu about to pop up
- 51h main menu popped down
- Return: all registers unchanged
- --------Q-1512--BH06-------------------------
- INT 15 - DESQview 2.20+ - SEND MESSAGE - "SETPRI" - SET PRIORITY WITHIN OBJECTQ
- AH = 12h
- BH = 06h
- BL = object
- 00h object handle in DWORD on top of stack
- mailbox, keyboard, pointer, or timer
- (DV 2.50+) window
- 01h (DV 2.50+) current task's window
- 04h given task's keyboard (task's handle on top of stack)
- 05h current task's default keyboard
- STACK: DWORD new priority of object in task's OBJECTQ
- (new priority of task if window handle)
- Return: STACK popped
- Notes: initially all objects have the same default value. Should only make
- relative adjustments to this default value.
- when changing priorities, all objects already on the objectq are
- reordered
- for window handles, only the non-blocked task(s) with the highest
- priority receive CPU time under DESQview 2.50-2.52; the default
- priority is 0Ah
- SeeAlso: AH=12h/BH=07h,AH=12h/BH=87h
- --------Q-1512--BH07-------------------------
- INT 15 - DESQview 2.20+ - SEND MESSAGE - "GETPRI" - GET PRIORITY WITHIN OBJECTQ
- AH = 12h
- BH = 07h
- BL = object
- 00h object handle in DWORD on top of stack
- mailbox, keyboard, pointer, or timer
- (DV 2.50+) window
- 01h (DV 2.50+) current task's window
- 04h given task's keyboard (task's handle on top of stack)
- 05h current task's default keyboard
- Return: STACK: DWORD object priority
- Note: initially all objects have the same default value. Should only make
- relative adjustments to this default value.
- SeeAlso: AH=12h/BH=06h
- --------Q-1512--BH08-------------------------
- INT 15 - TopView - SEND MESSAGE - "SIZEOF" - GET OBJECT SIZE
- AH = 12h
- BH = 08h
- BL = object
- 00h handle in DWORD on top of stack
- window: total character positions in window
- timer: elapsed time since timer started
- pointer: number of messages queued to pointer object
- panel: number of panels in panel file
- keyboard: number of input buffers queued
- 01h total chars in current task's default window
- 02h number of messages in task's mailbox (task's handle on stack)
- 03h number of messages in current task's mailbox
- 04h number of input buffers queued in task's kbd (handle on stack)
- 05h number of input buffers queued for current task's default kbd
- 06h number of objects queued in OBJECTQ (task's handle on stack)
- 07h number of objects queued in current task's OBJECTQ
- 0Ch (DV 2.26+) total chars in window owning handle on top of stack
- 0Dh (DV 2.26+) total chars in parent task's window
- Return: DWORD on top of stack is result (any handle on stack has been popped)
- Note: for panel objects, a count of zero is returned if no panel file is open
- for the object
- SeeAlso: AH=12h/BH=04h,AH=12h/BH=09h
- --------Q-1512--BH09-------------------------
- INT 15 - TopView - SEND MESSAGE - "LEN" - GET OBJECT LENGTH
- AH = 12h
- BH = 09h
- BL = object
- 00h handle in DWORD on top of stack
- window: get chars/line
- timer: get 1/100 seconds remaining before timer expires
- mailbox: (DV/X) get number of bytes queued to mailbox
- 01h get number of chars/line in current task's default window
- 0Ch (DV 2.26+) get chars/line in window owning handle on top of stk
- 0Dh (DV 2.26+) get chars/line in parent task's window
- Return: DWORD on top of stack is length (any handle on stack has been popped)
- SeeAlso: AH=12h/BH=08h
- --------Q-1512--BH0A-------------------------
- INT 15 - TopView - SEND MESSAGE - "ADDTO" - WRITE CHARS AND ATTRIBS TO WINDOW
- AH = 12h
- BH = 0Ah
- BL = window to write to
- 00h window handle is DWORD on top of stack
- 01h current task's default window
- 0Ch (DV 2.26+) default window of task owning handle on top of stack
- 0Dh (DV 2.26+) default window of parent of current task
- STACK: DWORD count of attributes
- DWORD address of attribute string
- DWORD count of characters
- DWORD address of character string
- Return: STACK popped
- Notes: if one string is longer than the other, the shorter one will be reused
- until the longer one is exhausted
- the cursor is left just after the last character written
- SeeAlso: AH=12h/BH=0Bh"WINDOW"
- --------Q-1512--BH0A-------------------------
- INT 15 - TopView - SEND MESSAGE - "ADDTO" - SEND MAILBOX MESSAGE/STAT BY VALUE
- AH = 12h
- BH = 0Ah
- BL = mailbox to write to
- 00h handle is DWORD on top of stack
- 02h default mailbox of task whose handle is on top of stack
- 03h current task's default mailbox
- STACK: DWORD status (low byte)
- DWORD length of message
- DWORD address of message
- Return: STACK popped
- Notes: the message is copied into either system or common memory
- insufficient memory normally causes the process to be aborted; under
- DESQview 2.2+, failed writes may return CF set instead (see AX=DE15h)
- SeeAlso: AH=12h/BH=0Bh"MAILBOX"
- --------Q-1512--BH0A-------------------------
- INT 15 - TopView - SEND MESSAGE - "ADDTO" - SET OBJECT BITS
- AH = 12h
- BH = 0Ah
- BL = object
- 00h handle is DWORD on top of stack
- timer: start timer for specified interval
- pointer: set control flags (see #0377)
- keyboard: set control flags (see #0376)
- 04h set control flags on KEYBOARD object (handle on top of stack)
- 05h set control flags on task's default KEYBOARD object
- STACK: (if timer) DWORD duration in 1/100 seconds
- (otherwise) DWORD bits to set
- Return: STACK popped
- SeeAlso: AH=12h/BH=0Bh"OBJECT"
-
- Bitfields for DESQview keyboard object bits:
- Bit(s) Description (Table 0376)
- 15 reserved, can't be set
- 14 unused
- 13 reserved, can't be set
- 12-6 unused
- 5 (DV 2.2+) exclusive input
- 4 filter all keys (used with handler established by SETESC)
- if 0, only keys that would normally be displayed are filtered
- 3 program continues executing while input in progress
- 2 insert mode active for field mode
- 1 hardware cursor displayed when task is hardware cursor owner
- must be set if keyboard in field mode and field table includes input
- fields
- 0 keyboard is in field mode rather than keystroke mode
-
- Bitfields for DESQview pointer object bits:
- Bit(s) Description (Table 0377)
- 15 reserved, can't be set
- 14-8 unused
- 7 mouse pointer is hidden while in window
- 6 get messages even if window not topmost
- 5 get messages even if window not foreground
- 4 multiple clicks separated by less than 1/3 second are counted and
- returned in a single message
- 3 pointer position is relative to screen origin, not window origin
- 2 send message on button release as well as button press
- 1 (DV 2.23+) send message with row=FFFFh and col=FFFFh whenever the
- pointer leaves the window
- 0 send message only on button activity, not movement
- DV-specific, and INT 15/AX=DE0Fh must have been called first
- --------Q-1512--BH0B-------------------------
- INT 15 - TopView - SEND MESSAGE - "SUBFROM" - WRITE ATTRIBUTES TO WINDOW
- AH = 12h
- BH = 0Bh
- BL = window to write attributes to
- 00h handle is DWORD on top of stack
- 01h current task's default window
- 0Ch (DV 2.26+) default window of task owning handle on top of stack
- 0Dh (DV 2.26+) default window of parent of current task
- STACK: DWORD number of attributes to write
- DWORD address of attributes
- Return: STACK popped
- Note: the attributes are written starting at the current cursor position; the
- cursor is left just after the last position written
- SeeAlso: AH=12h/BH=0Ah"WINDOW"
- --------Q-1512--BH0B-------------------------
- INT 15 - TopView - SEND MESSAGE - "SUBFROM" - SEND MAILBOX MESSAGE/STAT BY REF
- AH = 12h
- BH = 0Bh
- BL = mailbox to write to
- 00h handle is DWORD on top of stack
- 02h default mailbox of task whose handle is on top of stack
- 03h current task's default mailbox
- STACK: DWORD status (low byte)
- DWORD length of message
- DWORD address of message
- Return: STACK popped
- Notes: only a pointer to the message is stored, but the write may still fail
- due to insufficient memory
- under DV 2.2+, failed mailbox writes may return CF set (see AX=DE15h)
- SeeAlso: AH=12h/BH=0Ah"MAILBOX"
- --------Q-1512--BH0B-------------------------
- INT 15 - TopView - SEND MESSAGE - "SUBFROM" - REMOVE OBJECT FROM OBJECTQ
- AH = 12h
- BH = 0Bh
- BL = OBJECTQ from which to remove all copies of a particular object
- 06h OBJECTQ of task whose handle is on top of stack
- 07h task's default OBJECTQ
- STACK: DWORD handle of object to remove
- Return: STACK popped
- Note: should be sent whenever an object is erased or closed
- --------Q-1512--BH0B-------------------------
- INT 15 - TopView - SEND MESSAGE - "SUBFROM" - RESET OBJECT BITS
- AH = 12h
- BH = 0Bh
- BL = object
- 00h handle is DWORD on top of stack
- pointer: reset control flags
- keyboard: reset control flags
- 04h clear control flags on KEYBOARD object (handle on top of stack)
- 05h clear control flags on task's default KEYBOARD object
- STACK: DWORD which bits to clear (see #0376,#0377)
- Return: STACK popped
- SeeAlso: AH=12h/BH=0Ah"OBJECT"
- --------Q-1512--BH0C-------------------------
- INT 15 - TopView - SEND MESSAGE - "OPEN" - OPEN OBJECT
- AH = 12h
- BH = 0Ch
- BL = object
- 00h handle is DWORD on top of stack
- window: fill with given character from scroll origin to end
- keyboard: attach to a window
- timer: open
- pointer: start taking input for window
- panel: associate with a panel file
- 01h fill task's default window with given char from scrl org to end
- 02h open given task's mailbox for input (task's handle on stack)
- 03h open current task's mailbox
- 04h attach a KEYBOARD to a window (handle on top of stack)
- 05h attach task's default KEYBOARD to a window
- 06h open a task's OBJECTQ (task's handle on top of stack)
- 07h open current task's OBJECTQ
- 0Ch (DV 2.26+) fill def window of task owning handle on top of stck
- 0Dh (DV 2.26+) fill default window of parent of current task
- STACK: (if window) DWORD character to fill with
- (if keyboard) DWORD handle of window to attach to
- (if pointer) DWORD handle of window to attach to
- (if panel) DWORD length of filename or resident panel
- DWORD address of filename or resident panel
- (otherwise) nothing
- Return: STACK popped
- Notes: if first byte of panel file name is 1Bh, then the "name" IS a panel
- if first two bytes of panel file "name" are C0hC3h, then the "name" IS
- the panel file
- result code of open may be retrieved with STATUS message
- logical cursor is left at scroll origin after filling window
- the task opening a mailbox becomes its owner, and the only task allowed
- to read the mailbox
- messages are only sent to a pointer object when the mouse is positioned
- in the window to which the pointer has been attached
- there is no need to explicitly open a timer object, as ADDTO and WRITE
- messages automatically open the timer
- SeeAlso: AH=12h/BH=0Dh,AH=12h/BH=14h"LOCK"
- --------Q-1512--BH0D-------------------------
- INT 15 - TopView - SEND MESSAGE - "CLOSE" - CLOSE OBJECT
- AH = 12h
- BH = 0Dh
- BL = object
- 00h handle is DWORD on top of stack
- timer: close
- keyboard: detach from window and discard queued input
- pointer: stop taking input
- panel: close
- mailbox: close, unlock, and discard any pending messages
- 02h close given task's mailbox (task's handle on top of stack)
- 03h close task's default mailbox
- 04h close KEYBOARD object (handle on top of stack)
- 05h close task's default KEYBOARD
- 06h close given task's OBJECTQ (task's handle on top of stack)
- 07h close current task's OBJECTQ
- Return: STACK popped if handle passed on stack
- Notes: when an OBJECTQ is closed, each object in the OBJECTQ is sent an
- ERASE message (AH=12h/BH=0Eh)
- when a panel object is closed, the panel file and any panels currently
- in use are freed; window and keyboard objects created by APPLY are
- not affected, but field mode input ceases
- open but idle timer objects consume a small amount of CPU time
- SeeAlso: AH=12h/BH=0Ch,AH=12h/BH=0Eh,AH=12h/BH=14h"LOCK"
- --------Q-1512--BH0E-------------------------
- INT 15 - TopView - SEND MESSAGE - "ERASE" - ERASE OBJECT
- AH = 12h
- BH = 0Eh
- BL = object
- 00h handle is DWORD on top of stack
- window: clear from scroll origin to end of window
- keyboard: discard input
- timer: cancel current interval
- pointer: discard all pending messages
- mailbox: discard all pending messages
- 01h clear task's default window from scroll origin to end
- 02h discard all queued messages in mailbox (handle on top of stack)
- 03h discard all queued messages in current task's default mailbox
- 04h discard all input queued to KEYBOARD (handle on top of stack)
- 05h discard all input queued to task's default KEYBOARD
- 06h remove all objects from OBJECTQ (task's handle on top of stack)
- 07h remove all objects from current task's OBJECTQ
- 0Ch (DV 2.26+) clear window of task owning handle on top of stack
- 0Dh (DV 2.26+) clear default window of parent of current task
- Return: STACK popped if handle passed on stack
- Note: when an OBJECTQ is erased, each object in the OBJECTQ is also erased
- SeeAlso: AH=12h/BH=02h
- --------Q-1512--BH0F-------------------------
- INT 15 - TopView - SEND MESSAGE - "STATUS" - GET OBJECT STATUS
- AH = 12h
- BH = 0Fh
- BL = object
- 00h handle is DWORD on top of stack
- timer: is it running?
- pointer: return status of last message
- panel: verify success of last OPEN or APPLY
- 02h return status of last msg READ from mailbox (handle on stack)
- 03h return status of last msg READ from task's default mailbox
- 04h get stat of last msg from task's KEYBOARD (task handle on stk)
- 05h get status of last msg from task's default KEYBOARD
- 06h return whether OBJECTQ is open or not (handle on top of stack)
- 07h return whether task's default OBJECTQ is open or not
- Return: DWORD on top of stack is status (any handle passed on stack popped)
- Notes: if object is a panel object, the status indicates the error code:
- 00h successful
- 14h panel name not in panel directory
- 15h not enough memory to apply panel
- 16h invalid panel format
- 17h panel file already open
- 81h-92h DOS error codes+80h \ codes > 80h indicate
- 95h not enough memory to open panel file > that the panel was
- 98h null panel file name / not opened
- if object is a timer, the status is:
- 00000000h open but not running
- 40000000h open and running
- 80000000h closed
- if object is an OBJECTQ, the status is:
- 00000000h open
- 80000000h closed
- if object is a keyboard in keystroke mode, the status is the extended
- character code (scan code) of the last keystroke
- if object is a keyboard in field mode, the status indicates the reason
- for the last return from the field manager
- 00h Enter key pressed
- 01h Button 1 or keystroke selection
- 02h Button 2
- 03h validation
- 04h auto Enter on field
- 1Bh Escape pressed
- 46h ^Break pressed
- other: extended code for key terminating input
- the status of mailbox messages sent by the window manager is always 80h
- the status of a pointer message is the same as the status field in the
- message
- SeeAlso: AH=12h/BH=04h"READ"
- --------Q-1512--BH10-------------------------
- INT 15 - TopView - SEND MESSAGE - "EOF" - GET OBJECT EOF STATUS
- AH = 12h
- BH = 10h
- BL = object
- 00h handle is DWORD on top of stack
- window: return TRUE if logical cursor past end of window
- mailbox: ???
- 01h returns TRUE if logical cursor past end of task's def window
- 02h return ??? for task's mailbox (task's handle on top of stack)
- 03h return ??? for current task's mailbox
- 0Ch (DV 2.26+) check log crsr of window owning handle on top of stk
- 0Dh (DV 2.26+) check log cursor of window of parent task
- Return: DWORD on top of stack is status (any handle on stack has been popped)
- --------Q-1512--BH11-------------------------
- INT 15 - TopView - SEND MESSAGE - "AT" - POSITION OBJECT CURSOR
- AH = 12h
- BH = 11h
- BL = window for which to move cursor
- 00h window's handle is DWORD on top of stack
- 01h task's default window
- 0Ch (DV 2.26+) default window of task owning handle on top of stack
- 0Dh (DV 2.26+) default window of parent of current task
- STACK: DWORD column
- DWORD row
- Return: STACK popped
- --------Q-1512--BH11-------------------------
- INT 15 - TopView - SEND MESSAGE - "SETNAME" - ASSIGN NAME TO MAILBOX
- AH = 12h
- BH = 11h
- BL = mailbox to name
- 00h DWORD on top of stack is mailbox handle
- 02h use given task's mailbox (task's handle on top of stack)
- 03h use current task's default mailbox
- STACK: DWORD length of name
- DWORD address of name
- Return: STACK popped
- SeeAlso: AH=12h/BH=12h"GETNAME",AX=DE0Eh
- --------Q-1512--BX1100-----------------------
- INT 15 - TopView - SEND MESSAGE - "SETSCALE" - SET POINTER SCALE FACTOR
- AH = 12h
- BX = 1100h
- STACK: DWORD object handle for pointer object
- DWORD number of colums to scale pointer position to
- DWORD number of rows to scale pointer position to
- Return: STACK popped
- SeeAlso: AH=12h/BX=1200h
- --------Q-1512--BH12-------------------------
- INT 15 - TopView - SEND MESSAGE - "READN" - GET NEXT N OBJECT BYTES
- AH = 12h
- BH = 12h
- BL = window to read from
- 00h handle is DWORD on top of stack
- 01h read next N chars or attributes on task's default window
- 0Ch (DV 2.26+) read window of task owning handle on top of stack
- 0Dh (DV 2.26+) read default window of parent of current task
- STACK: DWORD count
- Return: STACK: DWORD number of bytes actually read
- DWORD address of buffer containing data
- Notes: reading starts at the current logical cursor position; the cursor is
- updated to point at the character following the last one read
- any translucent blanks (FFh) which are visible on screen are changed
- to the character which is seen through them
- the string produced by the read is placed in an input buffer which may
- be reused by the next READ or READN of a window
- window stream opcodes D8h and D9h determine whether the read returns
- characters or attributes
- SeeAlso: AH=12h/BH=04h"WINDOW",AH=12h/BH=05h"WINDOW"
- --------Q-1512--BH12-------------------------
- INT 15 - DESQview 2.50+ - SEND MESSAGE - "GETNAME" - GET NAME OF MAILBOX
- AH = 12h
- BH = 12h
- BL = mailbox for which to retrieve name
- 00h DWORD on top of stack is mailbox handle
- 02h use given task's mailbox (task's handle on top of stack)
- 03h use current task's default mailbox
- STACK: DWORD length of buffer for name
- DWORD pointer to buffer
- Return: STACK: DWORD length of returned name (or size of buffer, if less)
- Program: DESQview 2.5x is distributed as part of DESQview/X 1.0x
- Note: the returned name is not NUL-terminated
- SeeAlso: AH=12h/BH=11h"SETNAME",AX=DE0Eh
- --------Q-1512--BX1200-----------------------
- INT 15 - TopView - SEND MESSAGE - "GETSCALE" - GET POINTER SCALE FACTOR
- AH = 12h
- BX = 1200h
- STACK: DWORD object handle for pointer
- Return: STACK: DWORD pointer pos scaled as if window were this many colums wide
- DWORD pointer pos scaled as if window were this many rows high
- SeeAlso: AH=12h/BX=1100h
- --------Q-1512--BH13-------------------------
- INT 15 - TopView - SEND MESSAGE - "REDRAW" - REDRAW WINDOW
- AH = 12h
- BH = 13h
- BL = window object
- 00h DWORD on top of stack is handle for window to redraw
- 01h redraw task's default window
- 0Ch (DV 2.26+) redraw window of task owning handle on top of stack
- 0Dh (DV 2.26+) redraw default window of parent of current task
- Return: STACK popped if handle was passed on stack
- SeeAlso: AH=12h/BH=05h"WINDOW",AH=12h/BH=0Eh
- --------Q-1512--BH13-------------------------
- INT 15 - DESQview 2.50+ - SEND MESSAGE - "READINTO" - GET NEXT MAIL MESSAGE
- AH = 12h
- BH = 13h
- BL = mailbox from which to read
- 00h DWORD on top of stack is mailbox handle
- 02h use given task's mailbox (task's handle on top of stack)
- 03h use current task's default mailbox
- STACK: DWORD size of buffer in bytes
- DWORD pointer to buffer
- Return: STACK: DWORD number of bytes read
- Program: DESQview 2.5x is distributed as part of DESQview/X 1.0x
- Notes: this call blocks if no input is available, but will return less than
- the requested number of bytes if some (but insufficient) data is
- available
- use this call instead of AH=12h/BH=04h if the mailbox has flag bits
- 4 or 5 set, as common memory may be exhausted by that call when
- attempting to read the next message
- SeeAlso: AH=12h/BH=04h"READ",AH=12h/BH=05h,AH=12h/BH=16h
- --------Q-1512--BX1300-----------------------
- INT 15 - TopView - SEND MESSAGE - "SETICON" - SPECIFY POINTER ICON
- AH = 12h
- BX = 1300h
- STACK: DWORD object handle for pointer
- DWORD character to use for pointer
- Return: STACK popped
- --------Q-1512--BH14-------------------------
- INT 15 - TopView - SEND MESSAGE - "SETESC" - SET ESCAPE ROUTINE ADDRESS
- AH = 12h
- BH = 14h
- BL = message modifier
- 00h handle is DWORD on top of stack
- 01h define user stream
- 04h intercept keystrokes from KEYBOARD to window (handle on stack)
- 05h intercept keystrokes from task's default KEYBOARD to a window
- STACK: (if window) DWORD user stream number (14h-1Fh)
- DWORD address of FAR user stream handler
- (if keyboard) DWORD address of FAR filter function (see #0378)
- Return: STACK popped
-
- (Table 0378)
- Values keyboard filter function is called with when keyboard is in field mode:
- AL = character
- AH = 00h or extended ASCII code if AL = 00h
- BL = field number
- CH = cursor column
- CL = cursor row
- DL = field type modifier (sixth item in field table entry)
- DH = seventh item in field table entry
- ES:SI = window's handle
- DS:DI -> field table entry for field containing the cursor
- Return: AH = action to take
- 00h use keystroke
- 01h ignore keystroke
- FFh beep and ignore keystroke
- Note: the filter function is not allowed to make INT 15, DOS, or BIOS calls
- --------Q-1512--BH14-------------------------
- INT 15 - TopView - SEND MESSAGE - "LOCK" - REQUEST EXCLUSIVE ACCESS TO RESOURCE
- AH = 12h
- BH = 14h
- BL = object
- 00h mailbox handle is DWORD on top of stack
- 02h use given task's mailbox (task's handle on top of stack)
- 03h use current task's default mailbox
- Return: STACK popped if BL=00h
- Note: release exclusive access by sending CLOSE message to mailbox
- access may be requested multiple times, and requires multiple CLOSEs
- SeeAlso: AH=12h/BH=0Dh
- --------Q-1512--BH15-------------------------
- INT 15 - DESQview v2.20+ - SEND MESSAGE - "SETFLAGS" - SET OBJECT FLAGS
- AH = 12h
- BH = 15h
- BL = object
- 00h DWORD on top of stack
- mailbox, keyboard, or pointer only
- 02h mailbox for task whose handle is on top of stack
- 03h mailbox for current task
- 04h keyboard for task whose handle is on top of stack
- 05h keyboard for current task
- STACK: DWORD flags (see #0379,#0380)
- Return: STACK popped
- Notes: only available if the API level has been set to at least 2.20
- equivalent to performing SUBFROM and ADDTO calls on the object
- if a mailbox has bits 4 or 5 set, you must use "READINTO" rather than
- "READ" (see AH=12h/BH=13h"READINTO") to retrieve messages
- SeeAlso: AH=12h/BH=0Ah,AH=12h/BH=0Bh,AH=12h/BH=16h
-
- Bitfields for DESQview mailbox object flags:
- Bit(s) Description (Table 0379)
- 0 all mail messages in common memory
- 1 allow write even if closed
- 2 don't erase messages when mailbox closed
- 4 (DV/X) append messages with like status and sender (stream-oriented
- mail)
- 5 (DV/X) store mail in expanded memory (pool grows as needed)
- 6 (DV/X) make mailbox into non-owned mailbox
-
- Bitfields for DESQview keyboard object flags:
- Bit(s) Description (Table 0380)
- 5 exclusive input when keyboard in use for input
- --------Q-1512--BH16-------------------------
- INT 15 - DESQview v2.20+ - SEND MESSAGE - "GETFLAGS" - GET OBJECT FLAGS
- AH = 12h
- BH = 16h
- BL = object
- 00h DWORD on top of stack
- mailbox, keyboard, or pointer only
- 02h mailbox for task whose handle is on top of stack
- 03h mailbox for current task
- 04h keyboard for task whose handle is on top of stack
- 05h keyboard for current task
- Return: STACK: DWORD current control flags (see #0379,#0380)
- Notes: only available if the API level has been set to at least 2.20
- if a mailbox has bits 4 or 5 set, you must use "READINTO" rather than
- "READ" (see AH=12h/BH=13h"READINTO") to retrieve messages
- SeeAlso: AH=12h/BH=0Ah,AH=12h/BH=0Bh,AH=12h/BH=13h"READINTO",AH=12h/BH=15h
- --------Q-1512--BH17-------------------------
- INT 15 - DESQview v2.42-2.52 - BUG
- AH = 12h
- BH = 17h
- BL = object
- 00h DWORD on top of stack
- mailbox, keyboard, or pointer only
- 02h mailbox for task whose handle is on top of stack
- 03h mailbox for current task
- 04h keyboard for task whose handle is on top of stack
- 05h keyboard for current task
- Return: STACK popped if handle passed on stack
- Notes: due to a fencepost error, message 17h is accepted for mailboxes,
- keyboards, and pointers, but causes a random branch
- DESQview v2.50-2.52 are distributed as part of DESQview/X v1.02
- --------Q-1512--BH80-------------------------
- INT 15 - DESQview v2.50+ - SEND MESSAGE 00h WITH ERROR RECOVERY
- AH = 12h
- BH = 80h
- Note: this function is identical to AH=12h/BH=00h, except that DESQview will
- not pop up a "Programming Error" window, instead returning an error
- code in AL (see #0381)
- SeeAlso: AH=12h/BH=00h
-
- (Table 0381)
- Values for DESQview error code:
- 00h no error
- 01h invalid values
- 02h alias invalid
- 03h handle valid but wrong type
- 04h invalid handle
- --------Q-1512--BH81-------------------------
- INT 15 - DESQview v2.50+ - SEND MESSAGE 01h WITH ERROR RECOVERY
- AH = 12h
- BH = 81h
- Note: this function is identical to AH=12h/BH=01h, except that DESQview will
- not pop up a "Programming Error" window, instead returning an error
- code in AL (see #0381)
- SeeAlso: AH=12h/BH=01h
- --------Q-1512--BH82-------------------------
- INT 15 - DESQview v2.50+ - SEND MESSAGE 02h WITH ERROR RECOVERY
- AH = 12h
- BH = 82h
- Note: this function is identical to AH=12h/BH=02h, except that DESQview will
- not pop up a "Programming Error" window, instead returning an error
- code in AL (see #0381)
- SeeAlso: AH=12h/BH=02h
- --------Q-1512--BH83-------------------------
- INT 15 - DESQview v2.50+ - SEND MESSAGE 03h WITH ERROR RECOVERY
- AH = 12h
- BH = 83h
- Note: this function is identical to AH=12h/BH=03h, except that DESQview will
- not pop up a "Programming Error" window, instead returning an error
- code in AL (see #0381)
- SeeAlso: AH=12h/BH=03h,AH=12h/BX=0300h
- --------Q-1512--BH84-------------------------
- INT 15 - DESQview v2.50+ - SEND MESSAGE 04h WITH ERROR RECOVERY
- AH = 12h
- BH = 84h
- Note: this function is identical to AH=12h/BH=04h, except that DESQview will
- not pop up a "Programming Error" window, instead returning an error
- code in AL (see #0381)
- SeeAlso: AH=12h/BH=04h,AH=12h/BX=0400h
- --------Q-1512--BH85-------------------------
- INT 15 - DESQview v2.50+ - SEND MESSAGE 05h WITH ERROR RECOVERY
- AH = 12h
- BH = 85h
- Note: this function is identical to AH=12h/BH=05h, except that DESQview will
- not pop up a "Programming Error" window, instead returning an error
- code in AL (see #0381)
- SeeAlso: AH=12h/BH=05h
- --------Q-1512--BH86-------------------------
- INT 15 - DESQview v2.50+ - SEND MESSAGE 06h WITH ERROR RECOVERY
- AH = 12h
- BH = 86h
- Note: this function is identical to AH=12h/BH=06h, except that DESQview will
- not pop up a "Programming Error" window, instead returning an error
- code in AL (see #0381)
- SeeAlso: AH=12h/BH=06h
- --------Q-1512--BH87-------------------------
- INT 15 - DESQview v2.50+ - SEND MESSAGE 07h WITH ERROR RECOVERY
- AH = 12h
- BH = 87h
- Note: this function is identical to AH=12h/BH=07h, except that DESQview will
- not pop up a "Programming Error" window, instead returning an error
- code in AL (see #0381)
- SeeAlso: AH=12h/BH=07h
- --------Q-1512--BH88-------------------------
- INT 15 - DESQview v2.50+ - SEND MESSAGE 08h WITH ERROR RECOVERY
- AH = 12h
- BH = 88h
- Note: this function is identical to AH=12h/BH=08h, except that DESQview will
- not pop up a "Programming Error" window, instead returning an error
- code in AL (see #0381)
- SeeAlso: AH=12h/BH=08h
- --------Q-1512--BH89-------------------------
- INT 15 - DESQview v2.50+ - SEND MESSAGE 09h WITH ERROR RECOVERY
- AH = 12h
- BH = 89h
- Note: this function is identical to AH=12h/BH=09h, except that DESQview will
- not pop up a "Programming Error" window, instead returning an error
- code in AL (see #0381)
- SeeAlso: AH=12h/BH=09h
- --------Q-1512--BH8A-------------------------
- INT 15 - DESQview v2.50+ - SEND MESSAGE 0Ah WITH ERROR RECOVERY
- AH = 12h
- BH = 8Ah
- Note: this function is identical to AH=12h/BH=0Ah, except that DESQview will
- not pop up a "Programming Error" window, instead returning an error
- code in AL (see #0381)
- SeeAlso: AH=12h/BH=0Ah
- --------Q-1512--BH8B-------------------------
- INT 15 - DESQview v2.50+ - SEND MESSAGE 0Bh WITH ERROR RECOVERY
- AH = 12h
- BH = 8Bh
- Note: this function is identical to AH=12h/BH=0Bh, except that DESQview will
- not pop up a "Programming Error" window, instead returning an error
- code in AL (see #0381)
- SeeAlso: AH=12h/BH=0Bh
- --------Q-1512--BH8C-------------------------
- INT 15 - DESQview v2.50+ - SEND MESSAGE 0Ch WITH ERROR RECOVERY
- AH = 12h
- BH = 8Ch
- Note: this function is identical to AH=12h/BH=0Ch, except that DESQview will
- not pop up a "Programming Error" window, instead returning an error
- code in AL (see #0381)
- SeeAlso: AH=12h/BH=0Ch
- --------Q-1512--BH8D-------------------------
- INT 15 - DESQview v2.50+ - SEND MESSAGE 0Dh WITH ERROR RECOVERY
- AH = 12h
- BH = 8Dh
- Note: this function is identical to AH=12h/BH=0Dh, except that DESQview will
- not pop up a "Programming Error" window, instead returning an error
- code in AL (see #0381)
- SeeAlso: AH=12h/BH=0Dh
- --------Q-1512--BH8E-------------------------
- INT 15 - DESQview v2.50+ - SEND MESSAGE 0Eh WITH ERROR RECOVERY
- AH = 12h
- BH = 8Eh
- Note: this function is identical to AH=12h/BH=0Eh, except that DESQview will
- not pop up a "Programming Error" window, instead returning an error
- code in AL (see #0381)
- SeeAlso: AH=12h/BH=0Eh
- --------Q-1512--BH8F-------------------------
- INT 15 - DESQview v2.50+ - SEND MESSAGE 0Fh WITH ERROR RECOVERY
- AH = 12h
- BH = 8Fh
- Note: this function is identical to AH=12h/BH=0Fh, except that DESQview will
- not pop up a "Programming Error" window, instead returning an error
- code in AL (see #0381)
- SeeAlso: AH=12h/BH=0Fh
- --------Q-1512--BH90-------------------------
- INT 15 - DESQview v2.50+ - SEND MESSAGE 10h WITH ERROR RECOVERY
- AH = 12h
- BH = 90h
- Note: this function is identical to AH=12h/BH=10h, except that DESQview will
- not pop up a "Programming Error" window, instead returning an error
- code in AL (see #0381)
- SeeAlso: AH=12h/BH=10h
- --------Q-1512--BH91-------------------------
- INT 15 - DESQview v2.50+ - SEND MESSAGE 11h WITH ERROR RECOVERY
- AH = 12h
- BH = 91h
- Note: this function is identical to AH=12h/BH=11h, except that DESQview will
- not pop up a "Programming Error" window, instead returning an error
- code in AL (see #0381)
- SeeAlso: AH=12h/BH=11h,AH=12h/BX=1100h
- --------Q-1512--BH92-------------------------
- INT 15 - DESQview v2.50+ - SEND MESSAGE 12h WITH ERROR RECOVERY
- AH = 12h
- BH = 92h
- Note: this function is identical to AH=12h/BH=12h, except that DESQview will
- not pop up a "Programming Error" window, instead returning an error
- code in AL (see #0381)
- SeeAlso: AH=12h/BH=12h,AH=12h/BX=1200h
- --------Q-1512--BH93-------------------------
- INT 15 - DESQview v2.50+ - SEND MESSAGE 13h WITH ERROR RECOVERY
- AH = 12h
- BH = 93h
- Note: this function is identical to AH=12h/BH=13h, except that DESQview will
- not pop up a "Programming Error" window, instead returning an error
- code in AL (see #0381)
- SeeAlso: AH=12h/BH=13h
- --------Q-1512--BH94-------------------------
- INT 15 - DESQview v2.50+ - SEND MESSAGE 14h WITH ERROR RECOVERY
- AH = 12h
- BH = 94h
- Note: this function is identical to AH=12h/BH=14h, except that DESQview will
- not pop up a "Programming Error" window, instead returning an error
- code in AL (see #0381)
- SeeAlso: AH=12h/BH=14h
- --------Q-1512--BH95-------------------------
- INT 15 - DESQview v2.50+ - SEND MESSAGE 15h WITH ERROR RECOVERY
- AH = 12h
- BH = 95h
- Note: this function is identical to AH=12h/BH=15h, except that DESQview will
- not pop up a "Programming Error" window, instead returning an error
- code in AL (see #0381)
- SeeAlso: AH=12h/BH=15h
- --------Q-1512--BH96-------------------------
- INT 15 - DESQview v2.50+ - SEND MESSAGE 16h WITH ERROR RECOVERY
- AH = 12h
- BH = 96h
- Note: this function is identical to AH=12h/BH=16h, except that DESQview will
- not pop up a "Programming Error" window, instead returning an error
- code in AL (see #0381)
- SeeAlso: AH=12h/BH=16h
- --------T-1513-------------------------------
- INT 15 - VMiX - "sys_wake" - WAKE SLEEPING PROCESS
- AH = 13h
- STACK: WORD process ID
- Return: AX = status (SYS_OK or SYS_ERROR)
- SeeAlso: AH=12h"VMiX"
- --------T-1513-------------------------------
- INT 15 - MultiDOS Plus - GET TASK CONTROL BLOCK
- AH = 13h
- Return: BX:AX -> task control block (see #0382)
- SeeAlso: AH=15h"MultiDOS"
-
- Format of MultiDOS Plus v4.0 task control block:
- Offset Size Description (Table 0382)
- 00h DWORD pointer to next TCB
- 04h 8 BYTEs ASCIZ task name
- 0Ch 2 BYTEs ???
- 0Eh WORD task PSP segment
- 10h WORD abort/suspend flags
- 12h WORD current screen segment (see AH=0Bh,AH=0Ch)
- 14h WORD priority level (0000h-FFFEh)
- 16h WORD time slice counter
- 18h 2 BYTEs ???
- 1Ah WORD suspend timer value
- 1Ch WORD stack segment
- 1Eh WORD stack pointer
- 20h WORD display type
- 22h WORD display memory
- 24h 2 BYTEs ???
- 26h WORD termination count
- 28h WORD equipment flag for BIO10 driver
- 2Ah BYTE background CRT mode
- 2Bh WORD screen width in columns
- 2Dh WORD screen size in bytes
- 2Fh WORD segment of physical screen memory
- 31h 16 BYTEs eight cursor positions
- 41h WORD current cursor shape
- 43h BYTE active display page
- 44h WORD CRT controller I/O port base
- 46h 2 BYTEs ???
- 48h WORD foreground task flag
- 4Ah 6 BYTEs ???
- 50h WORD saved video segment (see AH=0Bh,AH=0Ch)
- 52h DWORD old INT 22
- 56h DWORD old INT 23
- 5Ah DWORD old INT 24
- 5Eh WORD top of memory for task
- 60h 4 BYTEs ???
- 64h WORD DTA segment (see INT 21/AH=1Ah)
- 66h WORD DTA offset
- 68h 4 BYTEs ???
- 6Ch BYTE current ANSI.SYS attribute
- 6Dh BYTE current ANSI.SYS column
- 6Eh BYTE current ANSI.SYS row
- 6Fh BYTE current ANSI.SYS display state
- 70h BYTE maximum ANSI.SYS columns
- 71h BYTE current ANSI.SYS page
- 72h WORD saved ANSI.SYS cursor position
- 74h BYTE ANSI.SYS parameter buffer index
- 75h BYTE current ANSI.SYS screen mode
- 76h BYTE ANSI.SYS wrap flag
- 77h 6 BYTEs ANSI.SYS parameter buffer
- 7Dh BYTE ANSI.SYS keyboard DSR state
- 7Eh 7 BYTEs ANSI.SYS keyboard DSR buffer
- 85h 3 BYTEs ???
- 88h 16 BYTEs request header for DOS driver calls
- 98h 14 BYTEs ???
- A6h WORD segment of EMS map if EMS task
- A8h WORD flag: task makes EMS calls
- AAh WORD EMS handle for task
- ACh WORD keyboard shift state
- AEh 12 BYTEs ???
- BAh WORD TCB of parent if child task
- BCh WORD termination code
- BEh WORD COM port number
- C0h 4 BYTEs ???
- C4h WORD current IRQ number
- C6h 2 BYTEs ???
- C8h WORD miscellaneous flag word
- CAh 2 BYTEs ???
- CCh DWORD old INT 10
- D0h WORD EMS alternate map set number
- D2h 414 BYTEs DOS current disk and directory context (optional)
- --------T-1514-------------------------------
- INT 15 - VMiX - "sys_clrwindow" - CLEAR WINDOW
- AH = 14h
- STACK: WORD top left corner of window (high byte = row, low = col)
- WORD bottom right corner of window (high = row, low = col)
- Return: AX = status (SYS_OK)
- Note: clears window to color set with "sys_setcolors" (AH=18h)
- SeeAlso: AH=15h"VMiX",AH=16h"VMiX",AH=18h"VMiX",AH=1Fh"VMiX"
- --------T-1514-------------------------------
- INT 15 - MultiDOS Plus - CHECK IF MultiDOS FOREGROUND OR BACKGROUND
- AH = 14h
- Return: AX = current state
- 0000h MultiDOS Plus command prompt is background task
- 0001h command prompt is foreground task
- SeeAlso: AH=0Bh"MultiDOS"
- --------T-1515-------------------------------
- INT 15 - VMiX - "sys_setbwindow" - SET BANNER WINDOW MESSAGE
- AH = 15h
- STACK: DWORD pointer to ASCIZ banner message for top of screen
- Return: AX = status (SYS_OK)
- SeeAlso: AH=14h"VMiX",AH=16h"VMiX"
- --------T-1515-------------------------------
- INT 15 - MultiDOS Plus - GET SYSTEM BLOCK
- AH = 15h
- Return: BX:AX -> system block (see #0383)
- SeeAlso: AH=13h"MultiDOS"
-
- Format of MultiDOS Plus 4.0 system block:
- Offset Size Description (Table 0383)
- 00h WORD segment of system control block
- 02h WORD redirection flag set by /NOREDIRECT
- 04h WORD no-INT 10 flag set by /NO10
- 06h DWORD old INT 10
- 0Ah DWORD new INT 10
- 0Eh DWORD pointer to WORD with current TCB offset (see #0382)
- 12h DWORD pointer to WORD with idle task TCB offset
- 16h DWORD pointer to WORD with foreground TCB offset (see #0382)
- 1Ah DWORD pointer to WORD with MultiDOS TCB offset (see #0382)
- 1Eh WORD Task Control Block size
- 20h WORD number of TCBs
- 22h WORD flag: EMS present
- 24h WORD EMS page frame base segment
- 26h WORD 16K pages in EMS page frame
- 28h WORD base segment for conventional memory tasks
- 2Ah WORD conventional memory size in paragraphs
- 2Ch DWORD pointer to list of queue pointers
- --------T-1516-------------------------------
- INT 15 - VMiX - "sys_setwindow" - SET ROOT WINDOW SIZE AND HOME CURSOR
- AH = 16h
- STACK: DWORD pointer to I/O Request Packet
- WORD top left corner of window (high byte = row, low = col)
- WORD bottom right corner of window (high = row, low = col)
- Return: AX = status (SYS_OK or SYS_ERROR)
- SeeAlso: AH=14h"VMiX",AH=17h"VMiX"
- --------T-1516-------------------------------
- INT 15 - MultiDOS Plus - INITIALIZATION
- AH = 16h
- Note: used internally during initialization; any other calls will cause
- unpredictable results
- --------T-1517-------------------------------
- INT 15 - VMiX - "sys_getcolors" - GET CONSOLE WINDOW COLORS
- AH = 17h
- Return: AH = foreground color
- AL = background color
- SeeAlso: AH=16h"VMiX",AH=18h"VMiX"
- --------T-1517-------------------------------
- INT 15 - MultiDOS Plus - MAP IRQ
- AH = 17h
- AL = IRQ to map (01h-0Fh)
- BX = offset of task control block (see #0382) to associate with IRQ
- Return: AX = status
- 0000h successful
- other invalid IRQ
- Note: the EMS map of the specified TCB is associated with the given interrupt
- SeeAlso: AH=18h"MultiDOS",AH=19h"MultiDOS"
- --------T-1518-------------------------------
- INT 15 - VMiX - "sys_setcolors" - SET CONSOLE COLORS
- AH = 18h
- STACK: WORD new background/foreground colors
- bits 3-0: foreground
- bits 7-4: background
- bits 15-8: unused
- Return: AX = color
- SeeAlso: AH=14h"VMiX",AH=17h"VMiX",AH=19h"VMiX"
- --------T-1518-------------------------------
- INT 15 - MultiDOS Plus - UNMAP IRQ
- AH = 18h
- AL = IRQ to unmap (01h-0Fh)
- Return: AX = status
- 0000h successful
- 0001h invalid IRQ
- Note: results are unpredictable if the IRQ has not been mapped
- SeeAlso: AH=17h"MultiDOS",AH=19h"MultiDOS"
- --------T-1519-------------------------------
- INT 15 - VMiX v2+ - "sys_setconwn" - SET WINDOW COLORS
- AH = 19h
- STACK: WORD new background/foreground colors
- bits 3-0: foreground
- bits 7-4: background
- bits 15-8: unused
- Return: AX = color
- SeeAlso: AH=18h"VMiX"
- --------T-1519-------------------------------
- INT 15 - MultiDOS Plus - UNMAP ALL IRQs
- AH = 19h
- Return: AX destroyed
- Note: for MultiDOS internal use only
- SeeAlso: AH=17h"MultiDOS",AH=18h"MultiDOS"
- --------T-151A-------------------------------
- INT 15 - VMiX v2+ - "sys_sint" - INVOKE SOFTWARE INTERRUPT
- AH = 1Ah
- STACK: WORD interrupt number
- DWORD pointer to register structure
- Return: AX = returned flags
- --------T-151A-------------------------------
- INT 15 - MultiDOS Plus - MAP SEMAPHORE NAME TO NUMBER
- AH = 1Ah
- DS:SI -> 8-byte name
- Return: AL = status
- 00h successful
- AH = semaphore number (20h-3Fh)
- 04h out of string space
- Notes: all eight bytes of the name are significant
- if the name does not already exist, it is added to the name table and
- associated with a free semaphore number
- names cannot be destroyed
- SeeAlso: AH=1Bh"MultiDOS",AH=1Ch"MultiDOS",AH=1Dh"MultiDOS"
- --------T-151B-------------------------------
- INT 15 - VMiX v2+ - "sys_blkmov" - MOVE MEMORY BLOCK
- AH = 1Bh
- STACK: DWORD source address
- DWORD destination address
- WORD number of words to move
- Return: nothing
- --------T-151B-------------------------------
- INT 15 - MultiDOS Plus - REQUEST RESOURCE SEMAPHORE BY NAME
- AH = 1Bh
- DS:SI -> 8-byte name
- Return: AH = status
- 00h successful
- 02h invalid semaphore number
- 03h caller already owns semaphore
- 04h out of string space
- Notes: (see AH=01h"MultiDOS")
- equivalent to AH=1Ah followed by AH=01h
- SeeAlso: AH=01h"MultiDOS",AH=1Ah"MultiDOS",AH=1Ch"MultiDOS",AH=1Dh"MultiDOS"
- --------T-151C-------------------------------
- INT 15 - VMiX v2+ - "sys_bitblt" - PUT GRAPHICAL OBJECT AT CURSOR POSITION
- AH = 1Ch
- STACK: WORD AND/OR pixel with background (00h = OR, 01h = AND)
- DWORD pointer to object bitmap
- WORD object width in pixels
- WORD object height in pixels
- Return: nothing
- SeeAlso: AH=1Dh"VMiX"
- --------T-151C-------------------------------
- INT 15 - MultiDOS Plus - RELEASE RESOURCE SEMAPHORE BY NAME
- AH = 1Ch
- DS:SI -> 8-byte name
- Return: AH = status
- 00h successful
- 01h not semaphore owner
- 02h invalid semaphore number
- 04h out of string space
- Notes: (see AH=02h"MultiDOS")
- equivalent to AH=1Ah followed by AH=02h
- SeeAlso: AH=02h"MultiDOS",AH=1Ah"MultiDOS",AH=1Bh"MultiDOS",AH=1Dh"MultiDOS"
- --------T-151D-------------------------------
- INT 15 - VMiX v2+ - "sys_getfont" - GET CURRENT CONSOLE GRAPHICS FONT
- AH = 1Dh
- Return: AX = current font number (00h-03h)
- SeeAlso: AH=1Ch"VMiX",AH=1Eh"VMiX"
- --------T-151D-------------------------------
- INT 15 - MultiDOS Plus - TEST RESOURCE SEMAPHORE BY NAME
- AH = 1Dh
- DS:SI -> 8-byte name
- Return: AH = status
- 00h semaphore not in use
- 01h semaphore owned by another task
- 02h invalid semaphore number
- 03h caller owns semaphore
- 04h out of string space
- Notes: (see AH=10h"MultiDOS")
- equivalent to AH=1Ah followed by AH=10h
- SeeAlso: AH=10h"MultiDOS",AH=1Ah"MultiDOS",AH=1Bh"MultiDOS",AH=1Ch"MultiDOS"
- --------T-151E-------------------------------
- INT 15 - VMiX v2+ - "sys_setfont" - SET CONSOLE GRAPHICS FONT
- AH = 1Eh
- STACK: WORD new font number (00h-03h)
- Return: AX = current font number (00h-03h)
- SeeAlso: AH=1Dh"VMiX"
- --------T-151E00-----------------------------
- INT 15 - MultiDOS Plus - CLEAR EVENT COUNTER
- AX = 1E00h
- DX = event/trigger number (00h-3Fh)
- Return: AH = status
- 00h successful
- SeeAlso: AX=1E01h,AX=1E02h
- --------T-151E01-----------------------------
- INT 15 - MultiDOS Plus - TRIGGER EVENT
- AX = 1E01h
- DX = event/trigger number (00h-3Fh)
- Return: AH = status
- 00h successful
- 01h invalid event/trigger number
- Notes: schedules any task waiting for event; if no task is waiting, the event
- counter is incremented (and will roll over if it was 65535)
- may be invoked by interrupt handler
- SeeAlso: AX=1E00h,AX=1E02h
- --------T-151E02-----------------------------
- INT 15 - MultiDOS Plus - WAIT FOR EVENT
- AX = 1E02h
- DX = event/trigger number (00h-3Fh)
- Return: AH = status
- 00h successful
- 01h invalid event/trigger number
- Note: if the event counter is zero, the task is suspended until the event is
- triggered with AX=1E01h; else, the counter is decremented and the
- call returns immediately
- SeeAlso: AX=1E00h,AX=1E01h
- --------T-151E08-----------------------------
- INT 15 - MultiDOS Plus 4.01 - SET CONTEXT-SWITCH FUNCTIONS
- AX = 1E08h
- DX:BX -> context save handler (see #0384)
- DX:CX -> context restore handler (see #0384)
- Return: nothing
- Note: handlers may be removed by setting addresses to 0000h:0000h
-
- (Table 0384)
- Values MultiDOS Plus context-switch handlers are called with:
- ES:BX -> task's TCB
- Return: all registers preserved
- --------T-151F-------------------------------
- INT 15 - VMiX v2.???+ - "sys_scrollwin" - SCROLL WINDOW
- AH = 1Fh
- STACK: WORD top left corner of window (high byte = row, low = col)
- WORD bottom right corner of window
- Return: AX = status (SYS_OK)
- SeeAlso: AH=14h"VMiX",AH=18h"VMiX"
- --------T-151F-------------------------------
- INT 15 - MultiDOS Plus v4.01 - GET MEMORY PARAMETERS
- AH = 1Fh
- Return: BX = first segment of conventional memory
- DX = first segment of EMS swap frame into which MultiDOS will load
- programs
- --------T-1520-------------------------------
- INT 15 - MultiDOS Plus v4.01 - CHECK IF MULTITASKING ENABLED
- AH = 20h
- Return: AX = current state
- 0000h multitasking enabled
- other TCB of task that disabled multitasking
- SeeAlso: AH=0Dh"MultiDOS",AH=13h"MultiDOS"
- --------c-152000-----------------------------
- INT 15 U - DOS 3.0+ PRINT.COM - DISABLE CRITICAL REGION FLAG
- AX = 2000h
- Return: nothing
- Desc: stop setting user flag on entry to PRINT critical region
- Note: also supported by PC Network v1.00 RECEIVER.COM
- SeeAlso: AX=2001h
- --------c-152001-----------------------------
- INT 15 U - DOS 3.0+ PRINT.COM - SET CRITICAL REGION FLAG
- AX = 2001h
- ES:BX -> byte which is to be incremented while in a DOS call
- Return: nothing
- Desc: specify a user flag which PRINT should set to let an interested
- application know it is in a critical region
- Note: also supported by PC Network v1.00 RECEIVER.COM
- SeeAlso: AX=2000h
- --------O-152010-----------------------------
- INT 15 - OS HOOK - SETUP SYSREQ ROUTINE (AT,XT286,PS50+)
- AX = 2010h
- ???
- Return: ???
- SeeAlso: AX=2011h
- --------O-152011-----------------------------
- INT 15 - OS HOOK - COMPLETION OF SYSREQ FUNCTION (AT,XT286,PS50+)
- AX = 2011h
- ???
- Return: ???
- SeeAlso: AX=2010h
- --------B-1521-------------------------------
- INT 15 - SYSTEM - POWER-ON SELF-TEST ERROR LOG (PS50+)
- AH = 21h
- AL = subfunction
- 00h read POST log
- 01h write POST log
- BH = device ID
- BL = error code
- Return: CF clear if successful
- CF set on error
- AH = status
- 00h OK
- 01h list full
- 02h unsupported subfunction
- 80h invalid command
- 86h unsupported function
- if function 00h:
- BX = number of error codes stored
- ES:DI -> error log
- Notes: the log is a series of words, the first byte of which identifies the
- error code and the second the device.
- supported by AMI PCI BIOS
- IBM considers this a required BIOS function
- if the device ID is FFh, the "error code" is the actual device number
- minus 255 (thus these devices have no specific error codes)
- SeeAlso: AH=23h"SYSTEM",AH=24h"SYSTEM"
- --------B-1522-------------------------------
- INT 15 - SYSTEM - later PS/2s - LOCATE ROM BASIC
- AH = 22h
- Return: CF set on error
- AH = status (86h if function not supported)
- CF clear on success
- AH = 00h
- ES:BX -> ROM BASIC
- Notes: if this function is not supported, ROM BASIC is at F600h:0000h
- IBM classifies this function as optional
- SeeAlso: INT 86"BASIC",INT F0"BASIC"
- --------B-152300-----------------------------
- INT 15 u - IBM BIOS - SMART ENERGY SYSTEM - GET ??? CMOS DATA
- AX = 2300h
- Return: CF clear if successful
- CL = value of CMOS location 2Dh
- CH = value of CMOS location 2Eh
- CF set on error
- AH = error code (80h,86h)
- Note: IBM classifies this function as optional
- SeeAlso: AX=2301h,AX=2304h,AX=2305h
- --------B-152301-----------------------------
- INT 15 u - IBM BIOS - SMART ENERGY SYSTEM - SET ??? CMOS DATA
- AX = 2301h
- CL = new value for CMOS location 2Dh
- CH = new value for CMOS location 2Eh
- Return: CF clear if successful
- CF set on error
- AH = error code (80h,86h)
- Notes: sets the contents of CMOS locations 2Dh and 2Eh
- IBM classifies this function as optional
- SeeAlso: AX=2300h,AX=2304h,AX=2305h
- --------B-152302-----------------------------
- INT 15 u - IBM BIOS - SMART ENERGY SYSTEM - GET ROM STARTUP VIDEO REG TABLES
- AX = 2302h
- BL = data index (00h-0Dh) (see #0385)
- Return: ES:BX -> table for register (see #0386,#0387)
- CX = size of table in bytes (may be 0000h)
- Note: IBM classifies this function as optional
- SeeAlso: AX=2300h,AX=2301h,AX=2303h
-
- (Table 0385)
- Values for PS/1 ROM startup video register tables:
- 00h DAC registers
- 01h ???
- 02h Palette registers
- 03h-0Dh ???
-
- Format of PS/1 ROM startup DAC register table:
- Offset Size Description (Table 0386)
- 00h WORD number of DAC registers in table
- 02h var array of 3-byte DAC register values, starting at register 00h
- SeeAlso: #0385
-
- Format of PS/1 ROM startup Palette register table:
- Offset Size Description (Table 0387)
- 00h 16 BYTEs colors for palette registers 00h through 0Fh
- 10h BYTE border color
- SeeAlso: #0385,#0017
- --------B-152303-----------------------------
- INT 15 U - IBM BIOS - SMART ENERGY SYSTEM - ???
- AX = 2303h
- BX = ??? ('x')
- DX = 'y' and 'z'
- bits 15-7 = 'y'
- bits 6-3 unused
- bits 2-0 = 'z'
- DI = ??? (0352h)
- Return: ???
- Notes: performs graphics functions, writes to segment A000h and VGA I/O ports
- IBM classifies this function as optional
- --------B-152304-----------------------------
- INT 15 u - IBM BIOS - SMART ENERGY SYSTEM - SYSTEM SETUP
- AX = 2304h
- DX = segment of 32K buffer
- Return: CF clear if successful
- AX = 0003h (left over from setting video mode 3)
- BX,CX,DX,BP,DS,ES destroyed
- CF set on error
- AH = error code (80h,86h)
- Desc: run system setup utility, and optionally save any changed settings to
- CMOS RAM
- Note: IBM classifies this function as optional
- SeeAlso: AX=2301h,AX=2305h
- --------B-152305-----------------------------
- INT 15 u - IBM BIOS - SMART ENERGY SYSTEM - GET PROCESSOR SPEED
- AX = 2305h
- Return: CF clear if successful
- AL = processor speed in MHz
- CF set on error
- AL = FFh (speed unknown or >80 MHz)
- AL = error code (80h,86h = unsupported function)
- Note: IBM classifies this function as optional
- SeeAlso: AX=2301h,AX=2304h,AH=BCh
- --------b-152400-----------------------------
- INT 15 - SYSTEM - later PS/2s - DISABLE A20 GATE
- AX = 2400h
- Return: CF clear if successful
- AH = 00h
- CF set on error
- AH = status
- 01h keyboard controller is in secure mode
- 86h function not supported
- Notes: also supported by AMI PCI BIOS and Qualitas 386MAX v6.01+
- IBM classifies this function as optional
- BUG: AMI BIOS v1.00.03.AV0M never reports an error on failure to disable
- the A20 gate; it simply writes 0 to PORT 0092h
- SeeAlso: AX=2401h,AX=2402h,AX=2403h,PORT 0092h
- --------b-152401-----------------------------
- INT 15 - SYSTEM - later PS/2s - ENABLE A20 GATE
- AX = 2401h
- Return: CF clear if successful
- AH = 00h
- CF set on error
- AH = status
- 01h keyboard controller is in secure mode
- 86h function not supported
- Notes: also supported by AMI PCI BIOS and Qualitas 386MAX v6.01+
- IBM classifies this function as optional
- SeeAlso: AX=2400h,AX=2402h,PORT 0092h
- --------b-152402-----------------------------
- INT 15 - SYSTEM - later PS/2s - GET A20 GATE STATUS
- AX = 2402h
- Return: CF clear if successful
- AH = 00h
- AL = current state (00h disabled, 01h enabled)
- CX = ??? (set to 0000h-000Bh or FFFFh by AMI BIOS v1.00.03.AV0M)
- FFFFh if keyboard controller does not become ready within C000h
- read attempts
- CF set on error
- AH = status
- 01h keyboard controller is in secure mode
- 86h function not supported
- Notes: also supported by AMI PCI BIOS and Qualitas 386MAX v6.01+
- IBM classifies this function as optional
- SeeAlso: AX=2400h,AX=2401h
- --------b-152403-----------------------------
- INT 15 - SYSTEM - later PS/2s - QUERY A20 GATE SUPPORT
- AX = 2403h
- Return: CF clear if successful
- AH = 00h
- BX = status of A20 gate support (see #0388)
- CF set on error
- AH = status
- 01h keyboard controller is in secure mode
- 86h function not supported
- Notes: also supported by AMI PCI BIOS and Qualitas 386MAX v6.01+
- IBM classifies this function as optional
- BUG: at one point early in processing INT 15/AH=24h, the AMI PCI BIOS
- version 1.00.05.AX1 compares whether AL==03h instead of AL>=03h,
- thus causing a random branch on any value of AL greater than 3.
- SeeAlso: AX=2402h
-
- Bitfields for A20 gate support status:
- Bit(s) Description (Table 0388)
- 0 supported on keyboard controller
- 1 supported with bit 1 of I/O port 92h
- 14-2 reserved
- 15 additional data is available (location not yet defined)
- --------T-153000-----------------------------
- INT 15 - Object Kernel for DOS - INSTALLATION CHECK
- AX = 3000h
- Return: AX:BX = 4F42h:4A21h ('OBJ!') if installed
- CX = resident segment
- Program: the Object Kernel is a program by M.W. Pieters which is currently
- under development
- Note: Central Point's CPBACKUP v9 calls INT 15/AX=3000h at startup, but it
- may be checking for a different program's presence
- SeeAlso: AX=3001h,AX=3008h
- --------T-153001-----------------------------
- INT 15 - Object Kernel for DOS - GET STATUS BLOCK
- AX = 3001h
- Return: AX = FFFFh
- ES:DI -> status block
- SeeAlso: AX=3000h,AX=3008h
- --------T-153002-----------------------------
- INT 15 - Object Kernel for DOS - KILL PROCESS
- AX = 3002h
- (not yet implemented)
- SeeAlso: AX=3000h
- --------T-153003-----------------------------
- INT 15 - Object Kernel for DOS - STOP PROCESS
- AX = 3003h
- (not yet implemented)
- SeeAlso: AX=3000h
- --------T-153004-----------------------------
- INT 15 - Object Kernel for DOS - START PROCESS
- AX = 3004h
- (not yet implemented)
- SeeAlso: AX=3000h
- --------T-153005-----------------------------
- INT 15 - Object Kernel for DOS - RESTART PROCESS
- AX = 3005h
- (not yet implemented)
- SeeAlso: AX=3000h
- --------T-153006-----------------------------
- INT 15 - Object Kernel for DOS - EXECUTE PROCESS
- AX = 3006h
- (not yet implemented)
- SeeAlso: AX=3000h
- --------T-153007-----------------------------
- INT 15 - Object Kernel for DOS - LIST PROCESSES
- AX = 3007h
- (not yet implemented)
- SeeAlso: AX=3000h
- --------T-153008-----------------------------
- INT 15 - Object Kernel for DOS - SWITCH ObjectKernel ON/OFF
- AX = 3008h
- BH = new state (00h disabled, 01h enabled)
- Return: AX = FFFFh
- SeeAlso: AX=3000h,AX=3009h
- --------T-153009-----------------------------
- INT 15 - Object Kernel for DOS - RESERVED FOR FUTURE USE
- AX = 3009h to 30FFh
- SeeAlso: AX=3000h
- Program: the Object Kernel is a program by M.W. Pieters which is currently
- under development
- ----------153D-------------------------------
- INT 15 - IBM SurePath BIOS - Officially "Private" Function
- AH = 3Dh
- SeeAlso: AH=07h"IBM",AH=3Eh"IBM"
- ----------153E-------------------------------
- INT 15 - IBM SurePath BIOS - Officially "Private" Function
- AH = 3Eh
- SeeAlso: AH=3Dh"IBM",AH=3Fh"IBM"
- ----------153F-------------------------------
- INT 15 - IBM SurePath BIOS - Officially "Private" Function
- AH = 3Fh
- SeeAlso: AH=07h"IBM",AH=3Eh"IBM"
- --------B-1540-------------------------------
- INT 15 - SYSTEM - READ/MODIFY PROFILES (CONVERTIBLE)
- AH = 40h
- AL = subfunction
- 00h get system profile in CX and BX
- 01h set system profile from CX and BX
- 02h get internal modem profile in BX
- 03h set internal modem profile from BX
- Return: CF clear if successful
- AH = 00h
- CF set on error
- AH = status (80h = profile execution failed)
- --------V-154000-----------------------------
- INT 15 - Compaq SLT/286 or Portable 386 - READ LCD/PLASMA TIMEOUT
- AX = 4000h
- Return: AX = 4000h
- CL = timeout in minutes, 00h if disabled
- SeeAlso: AX=4001h,AX=4600h
- --------V-154001-----------------------------
- INT 15 - Compaq SLT/286 or Portable 386 - SET LCD/PLASMA TIMEOUT
- AX = 4001h
- CL = timeout in minutes, 00h to disable
- Return: AL = status
- 00h timeout modified
- 01h timeout cannot be modified
- 40h timeout cannot be modified
- CL = timeout in minutes, 00h if disabled
- SeeAlso: AX=4000h,AX=4601h
- --------B-1541-------------------------------
- INT 15 - SYSTEM - WAIT ON EXTERNAL EVENT (CONVERTIBLE and some others)
- AH = 41h
- AL = condition type (see #0389)
- BH = condition compare or mask value
- BL = timeout value times 55 milliseconds
- 00h means no timeout
- DX = I/O port address if AL bit 4 set
- ES:DI -> user byte if AL bit 4 clear
- Return: after event or timeout occurs
- Note: call AH=C0h and examine bit 3 of feature byte 1 to determine whether
- this function is supported
- SeeAlso: AH=83h,AH=86h,AH=C0h
-
- Bitfields for external event wait condition type:
- Bit(s) Description (Table 0389)
- 0-2 condition to wait for
- 0 any external event
- 1 compare and return if equal
- 2 compare and return if not equal
- 3 test and return if not zero
- 4 test and return if zero
- 3 reserved
- 4 1=port address, 0=user byte
- 5-7 reserved
- --------B-1542-------------------------------
- INT 15 - SYSTEM - REQUEST POWER OFF (CONVERTIBLE,HP 95LX)
- AH = 42h
- AL = suspend type
- 00h to use system profile
- 01h to force suspend regardless of system profile
- Return: nothing
- Note: the HP 95LX apparently suspends regardless of the value in AL; on
- power-up, execution will resume following the instruction calling
- this function
- SeeAlso: AH=44h
- --------b-154280-----------------------------
- INT 15 - Compaq SLT/286 - ENTER STANDBY
- AX = 4280h
- Return: AH = 42h
- CF clear if successful
- CF set if unable to enter standby
- SeeAlso: AX=4600h,AX=5307h/CX=0001h"STAND-BY"
- --------B-1543-------------------------------
- INT 15 - SYSTEM - READ SYSTEM STATUS (CONVERTIBLE)
- AH = 43h
- Return: AL = status bits (see #0390)
-
- Bitfields for Convertible system status:
- Bit(s) Description (Table 0390)
- 7 power low
- 6 external power in use
- 5 standby power lost
- 4 power activated by alarm
- 3 internal modem powered on
- 2 RS232/parallel adapter powered on
- 1 reserved
- 0 LCD detached
- --------B-1544-------------------------------
- INT 15 - SYSTEM - (DE)ACTIVATE INTERNAL MODEM POWER (CONVERTIBLE)
- AH = 44h
- AL = new modem power state (00h power off, 01h power on)
- Return: nothing
- SeeAlso: AH=42h
- --------b-1544C0-----------------------------
- INT 15 - Olivetti Quaderno - INITIALIZE DIGITAL SIGNAL PROCESSING???
- AX = 44C0h
- ES:DI -> new DSP procedure (exchanged with CMOS[28h])
- ES:SI -> ??? buffer
- Return: ES:DI -> old DSP procedure
- ES:SI buffer filled with ten bytes from CMOS (addresses 14h-1Ch)
- followed by 00h (addresses 15h-1Ch copied only if less than 21h)
- Note: this function is also supported by XBIOS.COM
- SeeAlso: AX=44C9h
- --------b-1544C1-----------------------------
- INT 15 - Olivetti Quaderno - ???
- AX = 44C1h
- ???
- Return: ???
- Note: this function is also supported by XBIOS.COM
- SeeAlso: AX=44C9h
- --------b-1544C2-----------------------------
- INT 15 - Olivetti Quaderno - ???
- AX = 44C2h
- DL = byte to be written to I/O port 350h
- Note: this function is also supported by XBIOS.COM
- SeeAlso: AX=44C3h,AX=44C9h
- --------b-1544C3-----------------------------
- INT 15 - Olivetti Quaderno - GET ???
- AX = 44C3h
- Return: DH = bitfields (see #0391)
- DL = value read from I/O port 350h
- Note: this function is also supported by XBIOS.COM
- SeeAlso: AX=44C2h,AX=44C9h
-
- Bitfields for Olivetti Quaderno ???:
- Bit(s) Description (Table 0391)
- 5-7 5-7 read from I/O port 351h
- 2-4 zero
- 1-0 "tres complique"
- --------b-1544C4-----------------------------
- INT 15 - Olivetti Quaderno - ???
- AX = 44C4h and 44C5h
- ???
- Return: ???
- Note: this function is also supported by XBIOS.COM
- SeeAlso: AX=44C9h
- --------b-1544C6-----------------------------
- INT 15 - Olivetti Quaderno - READ LCD
- AX = 44C6h
- Return: DX = FFFFh clock is displayed on LCD display
- DX = other: hex number displayed in first four positions of display
- BH = left alphanumeric character on display (see #0392)
- BL = right alphanumeric character on display (see #0392)
- CL = colon flags (see #0393)
- Notes: the LCD display has the format HH:HH:AA, where H is a hex digit and A
- is an alphanumeric character
- this function is also supported by XBIOS.COM
- SeeAlso: AX=44C7h,AX=44C9h
-
- (Table 0392)
- Values for Olivetti Quaderno LCD alphanumeric characters:
- 00h-0Fh hex digit
- 2Bh "+"
- 2Dh "-"
- 30h-39h "0" to "9"
- 41h-5Ah "A" to "Z"
- 61h-6Ah "a" to "z"
- else blank
-
- Bitfields for Olivetti Quaderno LCD colon flags:
- Bit(s) Description (Table 0393)
- 0 left colon on
- 1 right colon on
- 2-7 unused
- --------b-1544C7-----------------------------
- INT 15 - Olivetti Quaderno - WRITE LCD
- AX = 44C7h
- DX = hex display
- FFFFh display clock and "HI", "Md", or "Lo"
- BH,BL,CL unused
- other: display specified hex number in first four positions
- BH = left alphanumeric character on display (see #0392)
- BL = right alphanumeric character on display (see #0392)
- CL = colon flags (see #0393)
- Return: nothing
- Note: this function is also supported by XBIOS.COM
- SeeAlso: AX=44C6h
- --------b-1544C8-----------------------------
- INT 15 - Olivetti Quaderno - ???
- AX = 44C8h
- CL = ??? (00h,02h,21h)
- CH = ???
- ???
- Return: ???
- Note: this function is also supported by XBIOS.COM
- SeeAlso: AX=44C9h
- --------b-1544C9-----------------------------
- INT 15 - Olivetti Quaderno - GET XBIOS VERSION
- AX = 44C9h
- Return: AL = major version
- AH = minor version
- Note: this function is also supported by XBIOS.COM
- --------B-1544F1-----------------------------
- INT 15 U - Toshiba laptops - SECURITY LEVEL CHECK
- AX = 44F1h
- DS:DX -> byte with 00h ???
- Return: ???
- Note: used by Toshiba BIOS setup utility TSETUP.EXE to distinguish
- between USER and SUPERVISOR security level
- SeeAlso: AX=44F2h,AX=44F3h
- --------B-1544F2BX0604-----------------------
- INT 15 U - Toshiba laptops - SECURITY LEVEL CHECK
- AX = 44F2h
- BX = 0604h ???
- Return: CF = ???
- AH = ???
- DX = ???
- Note: used by Toshiba BIOS setup utility TSETUP.EXE to distinguish
- between USER and SUPERVISOR security level
- SeeAlso: AX=44F1h,AX=44F3h
- --------B-1544F3-----------------------------
- INT 15 U - Toshiba laptops - SECURITY LEVEL CHECK
- AX = 44F3h
- DS:DX -> byte with 00h or 01h ???
- Return: DS:DX -> changed ???
- Note: used by Toshiba BIOS setup utility TSETUP.EXE to distinguish
- between USER and SUPERVISOR security level
- SeeAlso: AX=44F1h,AX=44F2h
- --------b-1545-------------------------------
- INT 15 U - HP 100LX/200LX - SET DISPLAY CONTROL STATUS
- AH = 45h
- AL = new display control status
- bit 0: DISPCTL flag +C instead of -C
- bit 1: DISPCTL flag +K instead of -K
- SeeAlso: AH=46h"HP",AH=47h"HP"
- --------b-1546-------------------------------
- INT 15 U - HP 100LX/200LX - SET POWER OFF TIMEOUT
- AH = 46h
- BX = timeout value in ticks
- 0000h inhibit auto power off
- Note: the 200LX default timeout is 0CCDh = 3277 ticks = approx. 3 min.
- SeeAlso: AH=45h"HP",AH=47h"HP"
- --------b-154600-----------------------------
- INT 15 - Compaq SLT/286 - READ POWER CONSERVATION/MODEM CONFIGURATION
- AX = 4600h
- Return: AH = modem configuration information (see #0394)
- AL = power conservation status information (see #0395)
- BH = default system inactivity timeout (1-21 minutes)
- BL = current system inactivity timeout (1-21 minutes)
- CH = default video display inactivity timeout (1-63 minutes)
- CL = current video display inactivity timeout (1-63 minutes)
- DH = default fixed disk drive inactivity timeout (1-21 minutes)
- DL = current fixed disk drive inactivity timeout (1-21 minutes)
- SeeAlso: AX=4280h,AX=4601h,INT 77
-
- Bitfields for Compaq SLT/286 modem configuration information:
- Bit(s) Description (Table 0394)
- 0 powerup state (0 off, 1 on)
- 1 modem installed
- 2 IRQ line assignment (0 IRQ 4, 1 IRQ 3)
- 3 COM port assignment (0 = COM 2, 1 = COM 1)
- 4 modem state (0 not assigned, 1 assigned)
- 5 modem is on
-
- Bitfields for Compaq SLT/286 power conservation status:
- Bit(s) Description (Table 0395)
- 0 power source (0 internal, 1 external)
- 1-2 low battery state
- 00 no low battery condition
- 01 low battery 1
- 10 reserved
- 11 low battery 2
- 3-4 power conservation mode
- 00 automatic, 01 on, 10 off, 11 reserved
- --------b-154601-----------------------------
- INT 15 - Compaq SLT/286 - MODIFY POWER CONSERVATION/MODEM CONFIGURATION
- AX = 4601h
- BL = system inactivity timeout (1-21 minutes)
- FFh do not change
- CL = video display inactivity timeout (1-63 minutes)
- FFh do not change
- DL = current fixed disk drive inactivity timeout (1-21 minutes)
- FFh do not change
- DH = new modem state (00h turn off, 01h turn on, FFh don't change)
- Return: CF clear if successful
- AH = 00h
- BL = current system inactivity timeout (1-21 minutes)
- CL = current video display inactivity timeout (1-63 minutes)
- DL = current fixed disk drive inactivity timeout (1-21 minutes)
- DH = modem state (FFh unchanged, 00h turned off, 01h turned on)
- CF set on error
- AH = error code
- 01h input is out of range
- 02h no modem present
- SeeAlso: AX=4600h,INT 77
- --------b-154604-----------------------------
- INT 15 - Compaq Contura 486 and "Alladin" 08/05/93 ROMs - GET ???
- AX = 4604h
- Return: CF clear if successful
- AL = byte read from I/O port 03F8h
- CF set on error (not supported)
- AH = 86h (unsupported function)
- Note: also supported by 7/26/93 LTE Lite 386 ROM
- --------b-154605-----------------------------
- INT 15 - Compaq Contura 486 and "Alladin" 08/05/93 ROMs - ???
- AX = 4605h
- Return: CF clear if successful
- CF set on error (not supported)
- AH = 86h (unsupported function)
- Note: this function is a NOP (other than clearing CF) in the 08/05/93 version
- of the Contura 486/486c/486cx and "Aladdin" ROM, and the 7/26/93
- LTE Lite 386 ROM
- --------b-1547-------------------------------
- INT 15 U - HP 100LX/200LX - GET/SET DISPLAY CONTRAST
- AH = 47h
- AL = subfunction
- 00h set contrast
- BL = new contrast
- (00h-0Fh, 0Fh is darkest, 10h-FFh are same as 0Fh)
- other get current contrast
- Return: AL = contrast (00h-0Fh, 0Fh is darkest)
- Note: may be for backward compatibility with HP95LX, as INT 15/AH=62h does
- substantially the same thing as this function
- SeeAlso: AH=45h"HP",AH=48h"HP",AH=62h"HP"
- --------b-1548-------------------------------
- INT 15 U - HP 100LX/200LX - SET BUZZER VOLUME
- AH = 48h
- AL = volume (00h-03h; 03h is loudest, 04h-FFh are same as 03h)
- SeeAlso: AH=47h"HP"
- --------S-1549-------------------------------
- INT 15 U - HP 100LX/200LX - SERIAL INTERFACE SELECT
- AH = 49h
- AL = serial interface
- 00h wired (COM1)
- 01h infrared
- Note: interface should only be changed in deactivated state (see AH=4Ah)
- SeeAlso: AH=4Ah"HP"
- --------J-154900-----------------------------
- INT 15 - Far East MS-DOS - GET BIOS TYPE
- AX = 4900h
- Return: CF clear if successful
- AH = 00h
- BL = BIOS mode
- 00h DOS/V
- 01h standard DBCS DOS (hardware DBCS support)
- CF set on error
- AH = 86h (function not supported)
- Note: in practice, DOS/J returns AH=86h; AX DOS does not support this call
- SeeAlso: AH=50h,INT 21/AH=30h
- --------S-154A-------------------------------
- INT 15 U - HP 100LX/200LX - SERIAL INTERFACE CONTROL
- AH = 4Ah
- AL = control
- 00h deactivate
- 01h activate
- Note: interface selected with AH=49h will be (de)activated
- SeeAlso: AH=49h"HP",AH=4Bh"HP"
- --------b-154B-------------------------------
- INT 15 U - HP 100LX/200LX - ADJUST SYSTEM TIME
- AH = 4Bh
- Desc: adjust system time based on real-time clock
- SeeAlso: AH=4Ah"HP",INT 1A/AH=02h,INT 21/AH=2Ch
- --------b-154DD4-----------------------------
- INT 15 - HP 95LX/100LX/200LX - INSTALLATION CHECK
- AX = 4DD4h
- Return: BX = 4850h ("HP") if HP 95LX/100LX/200LX
- CX = model
- 0101h HP 95LX
- 0102h HP 100LX/200LX
- DH = ???
- 02h HP 200LX 2MB BIOS 1.01 A D german
- DL = ???
- 00h HP 95LX
- 01h HP 200LX 2MB BIOS 1.01 A D german
- SeeAlso: INT 0B"HP 95LX",INT 0F"HP 95LX",INT 5F/AH=00h,INT 60/DI=0100h
- SeeAlso: INT 61"HP 95LX"
- --------b-154E-------------------------------
- INT 15 - HP 95LX - ENABLE/DISABLE LIGHT SLEEP
- AH = 4Eh
- AL = light sleep
- 00h disabled
- 01h enabled
- Note: when light sleep is disabled, the system will continue running at full
- speed; when enabled, it may automatically slow to conserve batteries
- SeeAlso: INT 06"HP 95LX",INT 60/DI=0100h
- ----------154E-------------------------------
- INT 15 - IBM SurePath BIOS - Officially "Private" Function
- AH = 4Eh
- SeeAlso: AH=07h"IBM",AH=3Eh"IBM"
- --------B-154F-------------------------------
- INT 15 C - KEYBOARD - KEYBOARD INTERCEPT (AT model 3x9,XT2,XT286,CONV,PS)
- AH = 4Fh
- AL = hardware scan code (see #0005)
- CF set
- Return: CF set to continue processing scan code
- AL = possibly-altered hardware scan code (see #0005)
- CF clear
- scan code should be ignored
- Notes: called by INT 09 handler to translate scan codes; the INT 09 code does
- not examine the scan code it reads from the keyboard until after
- this function returns. This permits software to rearrange the
- keyboard; for example, swapping the CapsLock and Control keys, or
- turning the right Shift key into Enter.
- DOS 6 KEYB.COM will not pass through this function if Ctrl-Alt-Del is
- pressed and a SmartDrive v4-compatible cache is installed which has
- dirty cache buffers; some other disk caches such as HyperDisk
- operate similarly in order to prevent loss of cached data which has
- not yet been written to disk
- IBM classifies this function as required
- SeeAlso: INT 09,INT 15/AH=C0h
- --------J-1550-------------------------------
- INT 15 - DOS/V - FONT SUBSYSTEM ACCESS
- AH = 50h
- AL = which function address to retrieve
- 00h "read font" function
- 01h "write font" function
- BL = 00h
- BH = character size (00h single-byte, 01h double-byte)
- DH = width of character cell
- DL = height of character cell
- BP = code page (see #0396)
- Return: CF clear if successful
- AH = 00h
- ES:BX -> requested function's address
- CF set on error
- AH = error code (see #0397)
- SeeAlso: AH=49h
-
- (Table 0396)
- Values for DOS/V code page:
- 0 default
- 437 US English
- 932 Japanese
- 934 Korea
- 936 China
- 938 Taiwan
- SeeAlso: #1446
-
- (Table 0397)
- Values for DOS/V error code:
- 01h invalid font type in BH
- 02h BL not zero
- 03h invalid font size
- 04h invalid code page
- 80h unsupported function (PC)
- 86h unsupported function (XT)
- SeeAlso: #1366
- --------T-1550-------------------------------
- INT 15 - VMIX v2.???+ - "sys_vm_page" - SET NEW VIRTUAL PAGE TABLE
- AH = 50h
- BX = segment of page directory table
- CX = page number of page table
- SeeAlso: AH=10h"VMiX",AH=51h"VMiX",AH=52h"VMiX"
- --------T-1551-------------------------------
- INT 15 - VMiX v2.???+ - "sys_vm_func" - EXECUTE FUNCTION IN PROTECTED MODE
- AH = 51h
- STACK: DWORD selector:offset of function
- Return: registers as returned by function
- Note: executes function with privilege level 0 (highest privilege)
- SeeAlso: AH=10h"VMiX",AH=52h"VMiX"
- --------B-155101-----------------------------
- INT 15 - SYSTEM - later PS/2s - EXPANSION UNIT, RETURN CONFIGURATION NUMBER
- AX = 5101h
- Return: CF set if successful
- AH = 00h
- AL = current configuration number
- 00h system unit only
- FFh configuration not recognized
- BX = status flag
- bits 0-14: reserved
- bit 15: additional data is available (location TBD)
- CF clear on error
- AH = status
- 01h expansion unit is not present
- 86h function not supported
- Note: CF convention is the reverse of the standard convention for this
- interrupt. (Perhaps a typo in the IBM BIOS Tech Ref?)
- --------T-1552-------------------------------
- INT 15 - VMiX v2.???+ - "sys_vm_init" - INITIALIZE PROTECTED-MODE ENVIRONMENT
- AH = 52h
- SeeAlso: AH=50h"VMiX",AH=51h"VMiX"
- --------d-1552-------------------------------
- INT 15 C - IBM/MS INT 13 Extensions - MEDIA EJECT INTERCEPT
- AH = 52h
- DL = drive number
- Return: CF clear if OK to eject media
- AH = 00h
- CF set if ejection disallowed
- AH = error code (B1h,B3h) (see #0166)
- Note: called by the IBM/MS INT 13 Extensions driver/BIOS when an ejection
- request is made
- SeeAlso: INT 13/AH=46h"INT 13 Extensions"
- --------p-155300-----------------------------
- INT 15 - Advanced Power Management v1.0+ - INSTALLATION CHECK
- AX = 5300h
- BX = device ID of system BIOS (0000h)
- Return: CF clear if successful
- AH = major version (BCD)
- AL = minor version (BCD)
- BX = 504Dh ("PM")
- CX = flags (see #0398)
- CF set on error
- AH = error code (06h,09h,86h) (see #0399)
- BUG: early versions of the Award Modular BIOS with built-in APM support
- reportedly do not set BX on return
-
- Bitfields for APM flags:
- Bit(s) Description (Table 0398)
- 0 16-bit protected mode interface supported
- 1 32-bit protected mode interface supported
- 2 CPU idle call reduces processor speed
- 3 BIOS power management disabled
- 4 BIOS power management disengaged (APM v1.1)
- 5-7 reserved
-
- (Table 0399)
- Values for APM error code:
- 01h power management functionality disabled
- 02h interface connection already in effect
- 03h interface not connected
- 04h real-mode interface not connected
- 05h 16-bit protected-mode interface already connected
- 06h 16-bit protected-mode interface not supported
- 07h 32-bit protected-mode interface already connected
- 08h 32-bit protected-mode interface not supported
- 09h unrecognized device ID
- 0Ah invalid parameter value in CX
- 0Bh (APM v1.1) interface not engaged
- 0Ch (APM v1.2) function not supported
- 0Dh (APM v1.2) Resume Timer disabled
- 0Eh-1Fh reserved for other interface and general errors
- 20h-3Fh reserved for CPU errors
- 40h-5Fh reserved for device errors
- 60h can't enter requested state
- 61h-7Fh reserved for other system errors
- 80h no power management events pending
- 81h-85h reserved for other power management event errors
- 86h APM not present
- 87h-9Fh reserved for other power management event errors
- A0h-FEh reserved
- FFh undefined
- --------p-155301-----------------------------
- INT 15 - Advanced Power Management v1.0+ - CONNECT REAL-MODE INTERFACE
- AX = 5301h
- BX = device ID of system BIOS (0000h)
- Return: CF clear if successful
- CF set on error
- AH = error code (02h,05h,07h,09h) (see #0399)
- Note: on connection, an APM v1.1 or v1.2 BIOS switches to APM v1.0
- compatibility mode until it is informed that the user supports a
- newer version of APM (see AX=530Eh)
- SeeAlso: AX=5302h,AX=5303h,AX=5304h
- --------p-155302-----------------------------
- INT 15 R - Advanced Power Management v1.0+ - CONNECT 16-BIT PROTMODE INTERFACE
- AX = 5302h
- BX = device ID of system BIOS (0000h)
- Return: CF clear if successful
- AX = real-mode segment base address of protected-mode 16-bit code
- segment
- BX = offset of entry point
- CX = real-mode segment base address of protected-mode 16-bit data
- segment
- ---APM v1.1---
- SI = APM BIOS code segment length
- DI = APM BIOS data segment length
- CF set on error
- AH = error code (02h,05h,06h,07h,09h) (see #0399)
- Notes: the caller must initialize two consecutive descriptors with the
- returned segment base addresses; these descriptors must be valid
- whenever the protected-mode interface is called, and will have
- their limits arbitrarily set to 64K.
- the protected mode interface is invoked by making a far call with the
- same register values as for INT 15; it must be invoked while CPL=0,
- the code segment descriptor must have a DPL of 0, the stack must be
- in a 16-bit segment and have enough room for BIOS use and possible
- interrupts, and the current I/O permission bit map must allow access
- to the I/O ports used for power management.
- functions 00h-03h are not available from protected mode
- on connection, an APM v1.1 or v1.2 BIOS switches to APM v1.0
- compatibility mode until it is informed that the user supports a
- newer version of APM (see AX=530Eh)
- SeeAlso: AX=5301h,AX=5303h,AX=5304h
- --------p-155303-----------------------------
- INT 15 - Advanced Power Management v1.0+ - CONNECT 32-BIT PROTMODE INTERFACE
- AX = 5303h
- BX = device ID of system BIOS (0000h)
- Return: CF clear if successful
- AX = real-mode segment base address of protected-mode 32-bit code
- segment
- EBX = offset of entry point
- CX = real-mode segment base address of protected-mode 16-bit code
- segment
- DX = real-mode segment base address of protected-mode 16-bit data
- segment
- ---APM v1.1---
- SI = APM BIOS code segment length
- DI = APM BIOS data segment length
- CF set on error
- AH = error code (02h,05h,07h,08h,09h) (see #0399)
- Notes: the caller must initialize three consecutive descriptors with the
- returned segment base addresses for 32-bit code, 16-bit code, and
- 16-bit data, respectively; these descriptors must be valid whenever
- the protected-mode interface is called, and will have their limits
- arbitrarily set to 64K.
- the protected mode interface is invoked by making a far call to the
- 32-bit code segment with the same register values as for INT 15; it
- must be invoked while CPL=0, the code segment descriptor must have a
- DPL of 0, the stack must be in a 32-bit segment and have enough room
- for BIOS use and possible interrupts, and the current I/O permission
- bit map must allow access to the I/O ports used for power management.
- functions 00h-03h are not available from protected mode
- on connection, an APM v1.1 or v1.2 BIOS switches to APM v1.0
- compatibility mode until it is informed that the user supports a
- newer version of APM (see AX=530Eh)
- SeeAlso: AX=5301h,AX=5302h,AX=5304h
- --------p-155304-----------------------------
- INT 15 - Advanced Power Management v1.0+ - DISCONNECT INTERFACE
- AX = 5304h
- BX = device ID of system BIOS (0000h)
- Return: CF clear if successful
- CF set on error
- AH = error code (03h,09h) (see #0399)
- SeeAlso: AX=5301h,AX=5302h,AX=5303h
- --------p-155305-----------------------------
- INT 15 - Advanced Power Management v1.0+ - CPU IDLE
- AX = 5305h
- Return: CF clear if successful (after system leaves idle state)
- CF set on error
- AH = error code (03h,0Bh) (see #0399)
- Notes: call when the system is idle and should be suspended until the next
- system event or interrupt
- should not be called from within a hardware interrupt handler to avoid
- reentrance problems
- if an interrupt causes the system to resume normal processing, the
- interrupt may or may not have been handled when the BIOS returns
- from this call; thus, the caller should allow interrupts on return
- interrupt handlers may not retain control if the BIOS allows
- interrupts while in idle mode even if they are able to determine
- that they were called from idle mode
- the caller should issue this call continuously in a loop until it needs
- to perform some processing of its own
- SeeAlso: AX=1000h,AX=5306h,INT 2F/AX=1680h
- --------p-155306-----------------------------
- INT 15 - Advanced Power Management v1.0+ - CPU BUSY
- AX = 5306h
- Return: CF clear if successful
- CF set on error
- AH = error code (03h,0Bh) (see #0399)
- Notes: called to ensure that the system runs at full speed even on systems
- where the BIOS is unable to recognize increased activity (especially
- if interrupts are hooked by other programs and not chained to the
- BIOS)
- this call may be made even when the system is already running at full
- speed, but it will create unnecessary overhead
- should not be called from within a hardware interrupt handler to avoid
- reentrance problems
- SeeAlso: AX=5305h
- --------p-155307-----------------------------
- INT 15 - Advanced Power Management v1.0+ - SET POWER STATE
- AX = 5307h
- BX = device ID (see #0400)
- CX = system state ID (see #0401)
- Return: CF clear if successful
- CF set on error
- AH = error code (01h,03h,09h,0Ah,0Bh,60h) (see #0399)
- Note: should not be called from within a hardware interrupt handler to avoid
- reentrance problems
- SeeAlso: AX=530Ch
-
- (Table 0400)
- Values for APM device IDs:
- 0000h system BIOS
- 0001h all devices for which the system BIOS manages power
- 01xxh display (01FFh for all attached display devices)
- 02xxh secondary storage (02FFh for all attached secondary storage devices)
- 03xxh parallel ports (03FFh for all attached parallel ports)
- 04xxh serial ports (04FFh for all attached serial ports)
- ---APM v1.1+ ---
- 05xxh network adapters (05FFh for all attached network adapters)
- 06xxh PCMCIA sockets (06FFh for all)
- 0700h-7FFFh reserved
- 80xxh system battery devices (APM v1.2)
- 8100h-DFFFh reserved
- Exxxh OEM-defined power device IDs
- F000h-FFFFh reserved
-
- (Table 0401)
- Values for system state ID:
- 0000h ready (not supported for device ID 0001h)
- 0001h stand-by
- 0002h suspend
- 0003h off (not supported for device ID 0001h)
- ---APM v1.1---
- 0004h last request processing notification (only for device ID 0001h)
- 0005h last request rejected (only for device ID 0001h)
- 0006h-001Fh reserved system states
- 0020h-003Fh OEM-defined system states
- 0040h-007Fh OEM-defined device states
- 0080h-FFFFh reserved device states
- --------p-155307CX0001-----------------------
- INT 15 - Advanced Power Management v1.0+ - SYSTEM STAND-BY
- AX = 5307h
- CX = 0001h
- BX = 0001h (device ID for all power-managed devices)
- Return: CF clear
- Notes: puts the entire system into stand-by mode; normally called in response
- to a System Stand-by Request notification after any necessary
- processing, but may also be invoked at the caller's discretion
- should not be called from within a hardware interrupt handler to avoid
- reentrance problems
- the stand-by state is typically exited on an interrupt
- SeeAlso: AX=4280h,AX=5307h/CX=0002h"SUSPEND",AX=530Bh
- --------p-155307CX0002-----------------------
- INT 15 - Advanced Power Management v1.0+ - SUSPEND SYSTEM
- AX = 5307h
- CX = 0002h
- BX = 0001h (device ID for all power-managed devices)
- Return: after system is resumed
- CF clear
- Notes: puts the entire system into a low-power suspended state; normally
- called in response to a Suspend System Request notification after
- any necessary processing, but may also be invoked at the caller's
- discretion
- should not be called from within a hardware interrupt handler to avoid
- reentrance problems
- the caller may need to update its date and time values because the
- system could have been suspended for a long period of time
- SeeAlso: AX=5307h/CX=0001h"STAND-BY",AX=530Bh
- --------p-155308-----------------------------
- INT 15 - Advanced Power Management v1.0+ - ENABLE/DISABLE POWER MANAGEMENT
- AX = 5308h
- BX = device ID for all devices power-managed by APM
- 0001h (APM v1.1+)
- FFFFh (APM v1.0)
- CX = new state
- 0000h disabled
- 0001h enabled
- Return: CF clear if successful
- CF set on error
- AH = error code (01h,03h,09h,0Ah,0Bh) (see #0399)
- Notes: when power management is disabled, the system BIOS will not
- automatically power down devices, enter stand-by or suspended mode,
- or perform any power-saving actions in response to AX=5305h calls
- should not be called from within a hardware interrupt handler to avoid
- reentrance problems
- the APM BIOS should never be both disabled and disengaged at the same
- time
- SeeAlso: AX=5309h,AX=530Dh,AX=530Fh
- --------p-155309-----------------------------
- INT 15 - Advanced Power Management v1.0+ - RESTORE POWER-ON DEFAULTS
- AX = 5309h
- BX = device ID for all devices power-managed by APM
- 0001h (APM v1.1)
- FFFFh (APM v1.0)
- Return: CF clear if successful
- CF set on error
- AH = error code (03h,09h,0Bh) (see #0399)
- Note: should not be called from within a hardware interrupt handler to avoid
- reentrance problems
- SeeAlso: AX=5308h
- --------p-15530A-----------------------------
- INT 15 - Advanced Power Management v1.0+ - GET POWER STATUS
- AX = 530Ah
- BX = device ID
- 0001h all devices power-managed by APM
- 80xxh specific battery unit number XXh (01h-FFh) (APM v1.2)
- Return: CF clear if successful
- BH = AC line status
- 00h off-line
- 01h on-line
- 02h on backup power (APM v1.1)
- FFh unknown
- other reserved
- BL = battery status (see #0402)
- CH = battery flag (APM v1.1+) (see #0403)
- CL = remaining battery life, percentage
- 00h-64h (0-100) percentage of full charge
- FFh unknown
- DX = remaining battery life, time (APM v1.1) (see #0404)
- ---if specific battery unit specified---
- SI = number of battery units currently installed
- CF set on error
- AH = error code (09h,0Ah) (see #0399)
- Notes: should not be called from within a hardware interrupt handler to avoid
- reentrance problems
- supported in real mode (INT 15) and both 16-bit and 32-bit protected
- mode
-
- (Table 0402)
- Values for APM v1.0+ battery status:
- 00h high
- 01h low
- 02h critical
- 03h charging
- FFh unknown
- other reserved
- SeeAlso: #0403,#0404
-
- Bitfields for APM v1.1+ battery flag:
- Bit(s) Description (Table 0403)
- 0 high
- 1 low
- 2 critical
- 3 charging
- 4 selected battery not present (APM v1.2)
- 5-6 reserved (0)
- 7 no system battery
- Note: all bits set (FFh) if unknown
- SeeAlso: #0402,#0404
-
- Bitfields for APM v1.1+ remaining battery life:
- Bit(s) Description (Table 0404)
- 15 time units: 0=seconds, 1=minutes
- 14-0 battery life in minutes or seconds
- Note: all bits set (FFFFh) if unknown
- SeeAlso: #0402,#0403
- --------p-15530B-----------------------------
- INT 15 - Advanced Power Management v1.0+ - GET POWER MANAGEMENT EVENT
- AX = 530Bh
- Return: CF clear if successful
- BX = event code (see #0405)
- CX = event information (APM v1.2) if BX=0003h or BX=0004h
- bit 0: PCMCIA socket was powered down in suspend state
- CF set on error
- AH = error code (03h,0Bh,80h) (see #0399)
- Notes: although power management events are often asynchronous, notification
- will not be made until polled via this call to permit software to
- only receive event notification when it is prepared to process
- power management events; since these events are not very time-
- critical, it should be sufficient to poll once or twice per second
- the critical resume notification is made after the system resumes
- from an emergency suspension; normally, the system BIOS only notifies
- its partner that it wishes to suspend and relies on the partner to
- actually request the suspension, but no notification is made on an
- emergency suspension
- should not be called from within a hardware interrupt handler to avoid
- reentrance problems
- SeeAlso: AX=5307h,AX=5307h/CX=0001h"STAND-BY",AX=5307h/CX=0002h"SUSPEND"
-
- (Table 0405)
- Values for APM event code:
- 0001h system stand-by request
- 0002h system suspend request
- 0003h normal resume system notification
- 0004h critical resume system notification
- 0005h battery low notification
- ---APM v1.1---
- 0006h power status change notification
- 0007h update time notification
- 0008h critical system suspend notification
- 0009h user system standby request notification
- 000Ah user system suspend request notification
- 000Bh system standby resume notification
- ---APM v1.2---
- 000Ch capabilities change notification (see AX=5310h)
- ------
- 000Dh-00FFh reserved system events
- 01xxh reserved device events
- 02xxh OEM-defined APM events
- 0300h-FFFFh reserved
- --------p-15530C-----------------------------
- INT 15 - Advanced Power Management v1.1+ - GET POWER STATE
- AX = 530Ch
- BX = device ID (see #0400)
- Return: CF clear if successful
- CX = system state ID (see #0401)
- CF set on error
- AH = error code (01h,09h) (see #0399)
- SeeAlso: AX=5307h
- --------p-15530D-----------------------------
- INT 15 - Advanced Power Management v1.1+ - EN/DISABLE DEVICE POWER MANAGEMENT
- AX = 530Dh
- BX = device ID (see #0400)
- CX = function
- 0000h disable power management
- 0001h enable power management
- Return: CF clear if successful
- CF set on error
- AH = error code (01h,03h,09h,0Ah,0Bh) (see #0399)
- Desc: specify whether automatic power management should be active for a
- given device
- SeeAlso: AX=5308h,AX=530Fh
- --------p-15530E-----------------------------
- INT 15 - Advanced Power Management v1.1+ - DRIVER VERSION
- AX = 530Eh
- BX = device ID of system BIOS (0000h)
- CH = APM driver major version (BCD)
- CL = APM driver minor version (BCD) (02h for APM v1.2)
- Return: CF clear if successful
- AH = APM connection major version (BCD)
- AL = APM connection minor version (BCD)
- CF set on error
- AH = error code (03h,09h,0Bh) (see #0399)
- SeeAlso: AX=5300h,AX=5303h
- --------p-15530F-----------------------------
- INT 15 - Advanced Power Management v1.1+ - ENGAGE/DISENGAGE POWER MANAGEMENT
- AX = 530Fh
- BX = device ID (see #0400)
- CX = function
- 0000h disengage power management
- 0001h engage power management
- Return: CF clear if successful
- CF set on error
- AH = error code (01h,09h) (see #0399)
- Notes: unlike AX=5308h, this call does not affect the functioning of the APM
- BIOS
- when cooperative power management is disengaged, the APM BIOS performs
- automatic power management of the system or device
- SeeAlso: AX=5308h,AX=530Dh
- --------p-155310-----------------------------
- INT 15 - Advanced Power Management v1.2 - GET CAPABILITIES
- AX = 5310h
- BX = device ID (see #0400)
- 0000h (APM BIOS)
- other reserved
- Return: CF clear if successful
- BL = number of battery units supported (00h if no system batteries)
- CX = capabilities flags (see #0406)
- CF set on error
- AH = error code (01h,09h,86h) (see #0399)
- Notes: this function is supported via the INT 15, 16-bit protected mode, and
- 32-bit protected mode interfaces; it does not require that a
- connection be established prior to use
- this function will return the capabilities currently in effect, not
- any new settings which have been made but do not take effect until
- a system restart
- SeeAlso: AX=5300h,AX=530Fh,AX=5311h,AX=5312h,AX=5313h
-
- Bitfields for APM v1.2 capabilities flags:
- Bit(s) Description (Table 0406)
- 0 can enter global standby state
- 1 can enter global suspend state
- 2 resume timer will wake up system from standby mode
- 3 resume timer will wake up system from suspend mode
- 4 Resume on Ring Indicator will wake up system from standby mode
- 5 Resume on Ring Indicator will wake up system from suspend mode
- 6 PCMCIA Ring Indicator will wake up system from standby mode
- 7 PCMCIA Ring Indicator will wake up system from suspend mode
- --------p-155311-----------------------------
- INT 15 - Advanced Power Management v1.2 - GET/SET/DISABLE RESUME TIMER
- AX = 5311h
- BX = device ID (see #0400)
- 0000h (APM BIOS)
- other reserved
- CL = function
- 00h disable Resume Timer
- 01h get Resume Timer
- 02h set Resume Timer
- CH = resume time, seconds (BCD)
- DL = resume time, minutes (BCD)
- DH = resume time, hours (BCD)
- SI = resume date (BCD), high byte = month, low byte = day
- DI = resume date, year (BCD)
- Return: CF clear if successful
- ---if getting timer---
- CH = resume time, seconds (BCD)
- DL = resume time, minutes (BCD)
- DH = resume time, hours (BCD)
- SI = resume date (BCD), high byte = month, low byte = day
- DI = resume date, year (BCD)
- CF set on error
- AH = error code (03h,09h,0Ah,0Bh,0Ch,0Dh,86h) (see #0399)
- Notes: this function is supported via the INT 15, 16-bit protected mode, and
- 32-bit protected mode interfaces
- SeeAlso: AX=5300h,AX=5310h,AX=5312h,AX=5313h
- --------p-155312-----------------------------
- INT 15 - Advanced Power Management v1.2 - ENABLE/DISABLE RESUME ON RING
- AX = 5312h
- BX = device ID (see #0400)
- 0000h (APM BIOS)
- other reserved
- CL = function
- 00h disable Resume on Ring Indicator
- 01h enable Resume on Ring Indicator
- 02h get Resume on Ring Indicator status
- Return: CF clear if successful
- CX = resume status (0000h disabled, 0001h enabled)
- CF set on error
- AH = error code (03h,09h,0Ah,0Bh,0Ch,86h) (see #0399)
- Notes: this function is supported via the INT 15, 16-bit protected mode, and
- 32-bit protected mode interfaces
- SeeAlso: AX=5300h,AX=5310h,AX=5311h,AX=5313h
- --------p-155313-----------------------------
- INT 15 - Advanced Power Management v1.2 - ENABLE/DISABLE TIMER-BASED REQUESTS
- AX = 5313h
- BX = device ID (see #0400)
- 0000h (APM BIOS)
- other reserved
- CL = function
- 00h disable timer-based requests
- 01h enable timer-based requests
- 02h get timer-based requests status
- Return: CF clear if successful
- CX = timer-based requests status (0000h disabled, 0001h enabled)
- CF set on error
- AH = error code (03h,09h,0Ah,0Bh,86h) (see #0399)
- Notes: this function is supported via the INT 15, 16-bit protected mode, and
- 32-bit protected mode interfaces
- SeeAlso: AX=5300h,AX=5310h,AX=5311h,AX=5312h
- --------p-155380BH00-------------------------
- INT 15 - APM SL Enhanced v1.0 - GET SUSPEND/GLOBAL STANDBY MODE
- AX = 5380h
- BH = 00h
- Return: CF clear if successful
- AL = 82360SL Auto Power Off Timer High Count (APWR_TMRH)
- BL = sustdbymode (see #0407)
- SeeAlso: AX=5380h/BH=01h,AX=5380h/BH=02h,AX=5380h/BH=7Fh
-
- Bitfields for APM SL sustdbymode:
- Bit(s) Description (Table 0407)
- 2 ???
- 1 Auto Power Off Timer Enable (APWR_TMR_EN)
- 0 ???
- --------p-155380BH01-------------------------
- INT 15 - APM SL Enhanced v1.0 - SET SUSPEND/GLOBAL STANDBY MODE
- AX = 5380h
- BH = 01h
- BL = sustdbymode (see #0407)
- Return: CF clear if successful
- SeeAlso: AX=5380h/BH=00h,AX=5380h/BH=7Fh
- --------p-155380BH02-------------------------
- INT 15 - APM SL Enhanced v1.0 - GET GLOBAL STANDBY TIMER
- AX = 5380h
- BH = 02h
- Return: CF clear if successful
- SI:DI = timer count in seconds (actually 1.024 seconds)
- Desc: reads the value of 82360SL GSTDBY_TMRH & GSTDBY_TMRL registers
- SeeAlso: AX=5380h/BH=00h,AX=5380h/BH=03h,AX=5380h/BH=04h,AX=5380h/BH=7Fh
- --------p-155380BH03-------------------------
- INT 15 - APM SL Enhanced v1.0 - SET GLOBAL STANDBY TIMER
- AX = 5380h
- BH = 03h
- SI:DI = timer count in seconds (actually 1.024 seconds)
- Return: CF clear if successful
- Desc: sets the value of 82360SL GSTDBY_TMRH & GSTDBY_TMRL registers
- Note: the maximum timer count is 268431 seconds
- SeeAlso: AX=5380h/BH=02h,AX=5380h/BH=7Fh
- --------p-155380BH04-------------------------
- INT 15 - APM SL Enhanced v1.0 - GET AUTO POWER OFF TIMER
- AX = 5380h
- BH = 04h
- Return: CF clear if successful
- SI:DI = timer count in seconds (actually 1.024 seconds)
- Desc: reads the value of 82360SL APWR_TMRH & APWR_TMRL registers
- SeeAlso: AX=5380h/BH=02h,AX=5380h/BH=05h,AX=5380h/BH=06h,AX=5380h/BH=7Fh
- --------p-155380BH05-------------------------
- INT 15 - APM SL Enhanced v1.0 - SET AUTO POWER OFF TIMER
- AX = 5380h
- BH = 05h
- SI:DI = timer count in seconds (actually 1.024 seconds)
- Return: CF clear if successful
- Desc: sets the value of 82360SL APWR_TMRH & APWR_TMRL registers
- Note: the maximum timer count is 134213 seconds
- SeeAlso: AX=5380h/BH=04h,AX=5380h/BH=7Fh
- --------p-155380BH06-------------------------
- INT 15 - APM SL Enhanced v1.0 - GET RESUME CONDITION
- AX = 5380h
- BH = 06h
- Return: CF clear if successful
- BL = resume condition (see #0408)
- Desc: reads the value of 82360SL RESUME_MASK register
- SeeAlso: AX=5380h/BH=04h,AX=5380h/BH=07h,AX=5380h/BH=08h,AX=5380h/BH=7Fh
-
- Bitfields for APM SL resume condition:
- Bit(s) Description (Table 0408)
- 7-2 reserved (0)
- 1 alarm enabled (resume on CMOS alarm)
- 0 ring enabled
- --------p-155380BH07-------------------------
- INT 15 - APM SL Enhanced v1.0 - SET RESUME CONDITION
- AX = 5380h
- BH = 07h
- BL = resume condition (see #0408)
- Return: CF clear if successful
- Desc: sets the value of 82360SL RESUME_MASK register
- SeeAlso: AX=5380h/BH=06h,AX=5380h/BH=7Fh
- --------p-155380BH08-------------------------
- INT 15 - APM SL Enhanced v1.0 - GET CALENDAR EVENT TIME
- AX = 5380h
- BH = 08h
- Return: CF clear if successful
- CH = hours
- CL = minutes
- SI = seconds
- CF set on error
- AH = error code (see #0409)
- Desc: gets calendar event time from CMOS ram
- SeeAlso: AX=5380h/BH=06h,AX=5380h/BH=09h,AX=5380h/BH=0Ah,AX=5380h/BH=7Fh
-
- (Table 0409)
- Values for APM SL error code:
- 02h no alarm set
- 03h no battery
- --------p-155380BH09-------------------------
- INT 15 - APM SL Enhanced v1.0 - SET CALENDAR EVENT TIME
- AX = 5380h
- BH = 09h
- CH = hours
- CL = minutes
- SI = seconds
- Return: CF clear if successful
- CF set on error
- AH = error code (see #0409)
- Desc: sets calendar event time in CMOS ram, enables Alarm resume
- SeeAlso: AX=5380h/BH=08h,AX=5380h/BH=7Fh
- --------p-155380BH0A-------------------------
- INT 15 - APM SL Enhanced v1.0 - GET CALENDAR EVENT DATE
- AX = 5380h
- BH = 0Ah
- Return: CF clear if successful
- SI = century
- DI = year
- CH = month
- CL = day
- CF set on error
- AH = error code (see #0409)
- Desc: reads calendar event date from Extended CMOS ram
- SeeAlso: AX=5380h/BH=08h,AX=5380h/BH=0Bh,AX=5380h/BH=0Ch,AX=5380h/BH=7Fh
- --------p-155380BH0B-------------------------
- INT 15 - APM SL Enhanced v1.0 - SET CALENDAR EVENT DATE
- AX = 5380h
- BH = 0Bh
- SI = century
- DI = year
- CH = month
- CL = day
- Return: CF clear if successful
- CF set on error
- AH = error code (see #0409)
- Desc: sets calendar event date in Extended CMOS ram
- SeeAlso: AX=5380h/BH=0Ah,AX=5380h/BH=7Fh
- --------p-155380BH0C-------------------------
- INT 15 - APM SL Enhanced v1.0 - GET CPU SPEED MODE
- AX = 5380h
- BH = 0Ch
- Return: CF clear if successful
- CL = CPU clock divider (1,2,4 or 8)
- BL = autocpumode ???
- Desc: reads bits 4-5 of CPUPWRMODE register
- SeeAlso: AX=5380h/BH=0Ah,AX=5380h/BH=0Dh,AX=5380h/BH=7Fh
- --------p-155380BH0D-------------------------
- INT 15 - APM SL Enhanced v1.0 - SET CPU SPEED MODE
- AX = 5380h
- BH = 0Dh
- CL = CPU clock divider (1,2,4 or 8)
- BL = autocpumode ???
- Return: CF clear if successful
- Desc: writes bits 4-5 of CPUPWRMODE register
- SeeAlso: AX=5380h/BH=0Ch,AX=5380h/BH=7Eh,AX=5380h/BH=7Fh
- --------p-155380BH7E-------------------------
- INT 15 - APM SL Enhanced v1.0 - SL HW PARAMETER
- AX = 5380h
- BH = 7Eh
- Return: AL = ???
- 03h on A-Step 386SL BIOSes
- 12h on later steps
- BX = Control port (00B0h)
- SeeAlso: AX=5380h/BH=00h,AX=5380h/BH=7Fh
- --------p-155380BH7F-------------------------
- INT 15 - Advanced Power Management v1.1 - OEM APM INSTALLATION CHECK
- AX = 5380h
- BH = 7Fh
- Return: CF clear if successful
- BX = OEM identifier
- all other registers OEM-defined
- ---Intel SL Enhanced Option BIOS---
- BX = 534Ch ('SL')
- CL = 4Fh ('O')
- AL = version (10h = 1.0)
- ---HP APM BIOS---
- BX = 4850h ('HP')
- CX = version (0001h)
- CF set on error
- AH = error code (03h) (see #0399)
- SeeAlso: AX=5380h/BH=00h
- --------p-155380-----------------------------
- INT 15 - Advanced Power Management v1.1 - OEM APM FUNCTIONS
- AX = 5380h
- BH <> 7Fh
- all other registers OEM-defined
- Return: OEM-defined
- SeeAlso: AX=5380h/BH=7Fh
- --------X-1553B0BH00-------------------------
- INT 15 - Intel System Management Bus - RESERVED
- AX = 53B0h
- BH = 00h
- Program: the SMBus is a variant of ACCESS.bus being used by Intel and Duracell
- for the Smart Battery proposal, but designed to be generic enough to
- handle other devices besides batteries
- --------X-1553B0BH01-------------------------
- INT 15 - Intel System Management Bus - INSTALLATION CHECK
- AX = 53B0h
- BH = 01h
- BL = 72h ('r')
- CX = 6164h ('ad')
- Return: CF clear if installed
- AH = SMBus BIOS Interface Specification major version (01h)
- AL = SMBus BIOS Interface Specification minor version (00h)
- BL = number of SMBus devices present
- CX = 6941h ('iA')
- DX = vendor-specified SMBus hardware code
- 0000h means undefined hardware type
- CF set if error
- AH = Error code 0Ah, 86h (see #0410)
- Note: this function is only supported in INT 15h mode
- SeeAlso: AX=53B0h/BH=02h,AX=53B0h/BH=03h,AX=53B0h/BH=04h,AX=53B0h/BH=06h
-
- (Table 0410)
- Values for Intel System Management Bus error codes:
- 00h SMBus OK
- 01h SMBus connect failed
- 02h SMBus already connected (see also #0411)
- 03h SMBus disconnect failed
- 04h SMBus not connected
- 05h SMBus INT 15 interface disabled
- 06h SMBus device address request out of range
- 07h SMBus unknown failure
- 08h SMBus message list empty
- 09h SMBus message list overflow
- 0Ah SMBus invalid signature
- 10h SMBus device address not acknowledged
- 11h SMBus device error detected
- 12h SMBus device command access denied
- 13h SMBus unknown error
- 14h SMBus transaction pending
- 15h SMBus no transaction pending
- 16h SMBus request does not match pending transaction
- 17h SMBus device access denied
- 18h SMBus timeout
- 19h SMBus protocol not supported
- 1Ah SMBus busy
- 1Bh SMBus SMI detected
- 80h SMBus OK (previously unreported SMI occurred)
- 86h SMBus not supported
-
- (Table 0411)
- Values for Intel System Management Bus Already Connected sub-error codes:
- 01h real mode connect already established
- 02h 16-bit PMode connect already established
- 03h 32-bit PMode connect already established
- SeeAlso: #0410
- --------X-1553B0BH02-------------------------
- INT 15 - Intel System Management Bus - REAL MODE CONNECT
- AX = 53B0h
- BH = 02h
- CX = 6941h ('iA')
- Return: CF clear if successful
- AX = SMBus Real mode code segment
- BX = offset of entry point into SMBus BIOS Interface
- CX = SMBus Real mode data segment
- CF set if error
- AH = error code (01h,02h,0Ah,86h) (see #0410)
- AL = sub-error code if error code is 02h (see #0411)
- Desc: connect to SMBus interface; once connected, all SMBus calls are made
- to the supplied entry point instead of INT 15 (with registers
- identical to those described here for INT 15)
- Notes: Support for this function is optional
- this function is only supported in INT 15 mode when implemented
- SeeAlso: AX=53B0h/BH=01h,AX=53B0h/BH=03h,AX=53B0h/BH=04h,AX=53B0h/BH=05h
- --------X-1553B0BH03-------------------------
- INT 15 - Intel System Management Bus - 16-BIT PROTECTED-MODE CONNECT
- AX = 53B0h
- BH = 03h
- CX = 6941h ('iA')
- Return: CF clear if successful
- AX = SMBus 16-bit code segment (real mode base address)
- BX = offset of entry point into SMBus BIOS Interface
- CX = SMBus 16-bit data segment (real mode base address)
- SI = code segment length in bytes
- DI = data segment length in bytes
- CF set if error
- AH = error code (01h,02h,0Ah,86h) (see #0410)
- AL = sub-error code if error code is 02h (see #0411)
- Desc: connect to SMBus interface; once connected, all SMBus calls are made
- to the supplied entry point instead of INT 15 (with registers
- identical to those described here for INT 15)
- Notes: before calling the entry point, two descriptors must be initialized
- in the GDT or LDT. They must be consecutive and be in the order of
- code, then data. At the time of the call, the descriptors must be
- valid and have CPL=0.
- the code descriptor must be ring-0 privilege
- this function is only supported in INT 15 mode
- SeeAlso: AX=53B0h/BH=01h,AX=53B0h/BH=02h,AX=53B0h/BH=04h,AX=53B0h/BH=05h
- --------X-1553B0BH04-------------------------
- INT 15 - Intel System Management Bus - 32-BIT PROTECTED-MODE CONNECT
- AX = 53B0h
- BH = 04h
- CX = 6941h ('iA')
- Return: CF clear if successful
- AX = SMBus 32-bit code segment (real mode base address)
- EBX = offset of entry point into SMBus BIOS Interface
- CX = SMBus 16-bit code segment (real mode base address)
- DX = SMBus data segment (real mode base address)
- SI = code segment length in bytes
- DI = data segment length in bytes
- CF set if error
- AH = error code (01h,02h,0Ah,86h) (see #0410)
- AL = sub-error code if error code is 02h (see #0411)
- Desc: connect to SMBus interface; once connected, all SMBus calls are made
- to the supplied entry point instead of INT 15 (with registers
- identical to those described here for INT 15)
- Notes: before calling the entry point, two descriptors must be initialized in
- the GDT or LDT. They must be consecutive and be in the order of
- 32-bit code, 16-bit code, then data. At the time of the call, the
- descriptors must be valid and have CPL=0.
- the code descriptors must be ring-0 privilege
- this function is supported only in INT 15 mode
- SeeAlso: AX=53B0h/BH=01h,AX=53B0h/BH=02h,AX=53B0h/BH=03h,AX=53B0h/BH=05h
- --------X-1553B0BH05-------------------------
- INT 15 - Intel System Management Bus - DISCONNECT
- AX = 53B0h
- BH = 05h
- CX = 6941h ('iA')
- Return: CF clear if successful
- AH = 00h (SMBus OK)
- CF set if error
- AH = error code (03h,04h,05h,0Ah,86h) (see #0410)
- Note: this function is supported in connected mode (far CALL entry point)
- only
- SeeAlso: AX=53B0h/BH=01h,AX=53B0h/BH=02h,AX=53B0h/BH=03h,AX=53B0h/BH=04h
- --------X-1553B0BH06-------------------------
- INT 15 - Intel System Management Bus - GET DEVICE ADDRESSES
- AX = 53B0h
- BH = 06h
- BL = position in list to report
- CH = 6941h ('iA')
- Return: CF clear if successful
- AH = 00h (SMBus OK)
- BH = number of SMBus devices
- BL = SMBus Device Address of device at position BL in list
- (see #0412)
- CF set if error
- AH = error code (06h,0Ah,86h) (see #0410)
- Desc: retrieves already assigned SMBus device addresses
- Notes: this function is supported in INT 15h mode only
- bit 0 of the device address indicates read/write, so a device may
- be listed at both xxxxxxx0b and xxxxxxx1b
-
- (Table 0412)
- Values for System Management Bus predefined device addresses:
- 10h SMBus host
- 12h Smart Battery charger
- 14h Smart Battery selector
- 16h Smart Battery
- 18h SMBus Alert response
- 50h ACCESS.bus host
- 58h LCD contrast controller
- 5Ah CCFL backlight driver
- 6Eh ACCESS.bus default address
- 80h-86h PCMCIA socket controllers
- 88h VGA graphics controller
- 90h-96h unrestricted addresses
- 82h SMBus device default address
- --------X-1553B0BH07-------------------------
- INT 15 - Intel System Management Bus - RETRIEVE CRITICAL MESSAGES
- AX = 53B0h
- BH = 07h
- CX = 6941h ('iA')
- Return: CF clear if successful
- AH = 00h (SMBus OK)
- AL = device address
- BX = device message
- CF set if error
- AH = error code (05h,07h,08h,09h,0Ah,86h) (see #0410)
- Desc: retrieves oldest queued critical message from an SMBus device to the
- host
- Notes: up to five messages are queued; if the queue is full, messages will be
- lost and error 09h returned
- --------X-1553B0BH08-------------------------
- INT 15 - Intel System Management Bus - RESERVED
- AX = 53B0h
- BH = 08h-0Fh
- --------X-1553B0BH10-------------------------
- INT 15 - Intel System Management Bus - REQUEST
- AX = 53B0h
- BH = 10h
- BL = protocol (see #0413)
- CH = device address
- CL = device command (see #0414)
- DH = MSB Data or block length (for BlockWrite)
- DL = LSB Data or first byte of block (for BlockWrite)
- Return: CF clear if successful
- AH = 00h or 80h (SMBus OK)
- (80h indicates a previously unreported SMI took place)
- CF set if error
- AH = error code (05h,10h,11h,12h,13h,14h,17h,19h,1Ah,86h)
- (see #0410)
- Desc: request access to a device on the SMBus
- SeeAlso: AX=53B0h/BH=11h, AX=53B0h/BH=13h
-
- (Table 0413)
- Values for Intel System Management Bus protocol codes:
- 00h Quick Command
- 01h Send Byte
- 02h Receive Byte
- 03h Write Byte
- 04h Read Byte
- 05h Write Word
- 06h Read Word
- 07h Block Write
- 08h Block Read
- 09h Process Call
- 0Ah-FFh reserved
- SeeAlso: #0414
-
- (Table 0414)
- Values for Intel System Management Bus Smart Battery command codes:
- Cmd Protocol(s) Description
- 00h Rd/Wr Word "ManufacturerAccess" implementation-specific
- 01h Rd/Wr Word get/set Low Capacity Alarm threshold
- 02h Rd/Wr Word get/set Remaining Time Alarm value (in minutes)
- 03h Rd/Wr Word get/set battery characteristics (see #0415)
- 04h Rd/Wr Word "AtRate" indicate charge/discharge rate
- 05h Read Word "AtRateTimeToFull" time to completely charge (in min.)
- 06h Read Word "AtRateTimeToEmpty" time to entirely discharge (min.)
- 07h Read Word "AtRateOK" boolean: can battery supply another 10sec?
- 08h Read Word internal battery temperature (in 0.1 Kelvins)
- 09h Read Word current battery voltage in millivolts
- 0Ah Read Word current flowing through battery in milliamperes
- (positive if charging, negative if discharging)
- 0Bh Read Word average current over the past minute
- 0Ch Read Word expected error margin in capacity computations in %
- 0Dh Read Word predicted remaining charge as % of full charge
- 0Eh Read Word predicted remaining charge as % of design capacity
- 0Fh Read Word predicted remaining charge in mAh or 10mWh
- 10h Read Word predicted full charge capacity in mAh or 10mWh
- 11h Read Word predicted remaining battery life in minutes
- FFFFh = not discharging
- 12h Read Word rolling average of predicted life over past minute
- 13h Read Word rolling average of predicted charge time over past min.
- FFFFh = not charging
- 14h Read Word get battery's desired charging current in mA
- 14h Write Word set charging current in mA
- 15h Read Word get battery's desired charging current in mV
- 15h Write Word set desired charging voltage in mV
- 16h Read Word get current battery status (see #0416)
- 17h Read Word get number of charge/discharge cycles for battery
- 18h Read Word get design capacity in mAh or 10mWh
- 19h Read Word get design voltage
- 1Ah Read Word get specification information (see #0417)
- 1Bh Read Word get manufacture date (see #1351 at INT 21/AX=5700h)
- 1Ch Read Word get serial number
- 1Dh-1Fh reserved
- 20h Read Block get manufacturer's name
- 21h Read Block get device name
- 22h Read Block get device chemistry (see #0418)
- 23h Read Block get manufacturer data
- 24h-2Eh reserved
- 2Fh manufacturer-specific
- 30h-3Bh reserved
- 3Ch-3Fh manufacturer-specific
- Note: bits 7-6 are reserved for addressing multiple batteries in a future
- version of the specification
- SeeAlso: #0413
-
- Bitfields for Smart Battery battery characteristics:
- Bit(s) Description (Table 0415)
- 0 battery has internal charge controller (read-only)
- 1 primary/secondary battery support (read-only)
- 6-2 reserved
- 7 conditioning cycle requested
- 8 internal charge controller enabled
- 9 battery operating in primary mode
- 13-10 reserved
- 14 disable broadcast to charger
- 15 report capacity in units of 10mW / 10mWh instead of mA / mAh
- SeeAlso: #0414,#0416
-
- Bitfields for Smart Battery battery status:
- Bit(s) Description (Table 0416)
- 15 overcharged
- 14 terminate-charge alarm
- 13 reserved
- 12 over-temperature alarm
- 11 terminate-discharge alarm
- 10 reserved
- 9 remaining-capacity alarm
- 8 remaining-time alarm
- 7 initialized
- 6 charging
- 5 fully charged
- 4 fully discharged
- 3-0 error codes
- 0000 OK
- 0001 busy
- 0010 reserved command
- 0011 unsupported command
- 0100 access denied (tried to write to read-only value)
- 0101 overflow/underflow
- 0110 bad size
- 0111 unknown error
- SeeAlso: #0414,#0415,#0417
-
- Bitfields for Smart Battery specification information:
- Bit(s) Description (Table 0417)
- 3-0 SmartBattery specification minor revision number
- 7-4 SmartBattery specification version number
- 11-8 voltage scaling (0-3, multiply voltages by 10^scale)
- 15-12 current scaling (0-3, multiply currents by 10^scale)
- SeeAlso: #0414,#0416
-
- (Table 0418)
- Values for Smart Battery device chemistry (not case-sensitive):
- "LION" Lithium ion
- "NiMH" Nickel metal hydride
- "PbAc" lead-acid
- "NiCd" Nickel Cadmium
- "NiZn" Nickel Zinc
- "RAM" rechargeable Alkaline Manganese
- "ZnAr" Zinc-Air
- SeeAlso: #0414
- --------X-1553B0BH11-------------------------
- INT 15 - Intel System Management Bus - REQUEST CONTINUATION
- AX = 53B0h
- BH = 11h
- BL = protocol (see #0413)
- CH = device address
- CL = number of valid bytes in DX (1 or 2)
- DH = MSB Data (CL = 1 or 2)
- DL = LSB Data (CL = 2)
- Return: CF clear if successful
- AH = 00h (SMBus OK)
- CL = SMBus status
- 00h SMBus hardware not ready for more data
- 01h SMBus hardware ready for 2 more data bytes
- CF set if error
- AH = error code (05h,11h,13h,15h,16h,18h,1Bh,86h) (see #0410)
- Desc: continue WriteBlock protocol started with function 10h
- SeeAlso: AX=53B0h/BH=10h, AX=53B0h/BH=13h
- --------X-1553B0BH12-------------------------
- INT 15 - Intel System Management Bus - REQUEST ABORT
- AX = 53B0h
- BH = 12h
- BL = protocol (see #0413)
- CH = device address
- CL = device command
- Return: CF clear if successful
- AH = 00h (SMBus OK)
- CF set if error
- AH = error code (05h,13h,15h,16h,86h) (see #0410)
- Desc: stop the currently pending SMBus request; usually used to terminate
- a request after an SMI Detected error
- --------X-1553B0BH13-------------------------
- INT 15 - Intel System Management Bus - REQUEST DATA AND STATUS
- AX = 53B0h
- BH = 13h
- BL = protocol (see #0413)
- CH = device address
- CL = device command
- Return: CF clear if successful
- AH = 00h (SMBus OK)
- CH = status
- 00h no data pending, transaction complete
- 01h no data pending, transaction continues
- 02h data pending
- CL = number of valid bytes in DX (0-2)
- DH = MSB data
- DL = LSB data
- CF set if error
- AH = error code (05h,10h,11h,13h,15h,16h,18h,1Bh,86h) (see #0410)
- Desc: determine when a transaction is complete, gather data returned by read
- transactions
- Note: for Block Read protocol (08h), first call returns block length in DH
- and the first byte of the block in DL
- ----------1554-------------------------------
- INT 15 - IBM SurePath BIOS - Officially "Private" Function
- AH = 54h
- SeeAlso: AH=07h"IBM",AH=3Eh"IBM"
- --------T-155400-----------------------------
- INT 15 C - Omniview Multitasker - INSTALLATION NOTIFICATION
- AX = 5400h
- ES:BX -> device information tables
- DI:DX -> dispatcher entry point
- Note: called by OmniView to notify programs loaded before OmniView of state
- changes inside OmniView
- SeeAlso: AX=5407h,INT 2F/AX=DE00h
- --------T-155401-----------------------------
- INT 15 C - Omniview Multitasker - PROCESS CREATION
- AX = 5401h
- ES:BX = process handle
- Note: called by OmniView to notify programs loaded before OmniView of state
- changes inside OmniView
- SeeAlso: AX=5402h,INT 2F/AX=DE04h
- --------T-155402-----------------------------
- INT 15 C - Omniview Multitasker - PROCESS DESTRUCTION
- AX = 5402h
- ES:DX = process handle
- Note: called by OmniView to notify programs loaded before OmniView of state
- changes inside OmniView
- SeeAlso: AX=5401h,INT 2F/AX=DE05h
- --------T-155403-----------------------------
- INT 15 C - Omniview Multitasker - SAVE
- AX = 5403h
- ES:DX = process swapping out
- Note: called by OmniView to notify programs loaded before OmniView of state
- changes inside OmniView
- SeeAlso: AX=5404h,INT 2F/AX=DE08h
- --------T-155404-----------------------------
- INT 15 C - Omniview Multitasker - RESTORE
- AX = 5404h
- ES:DX = process swapping in
- Note: called by OmniView to notify programs loaded before OmniView of state
- changes inside OmniView
- SeeAlso: AX=5403h,INT 2F/AX=DE09h
- --------T-155405-----------------------------
- INT 15 C - Omniview Multitasker - SWITCHING TO BACKGROUND
- AX = 5405h
- ES:DX = process swapping in
- Note: called by OmniView to notify programs loaded before OmniView of state
- changes inside OmniView
- SeeAlso: AX=5406h
- --------T-155406-----------------------------
- INT 15 C - Omniview Multitasker - SWITCHING TO FOREGROUND
- AX = 5406h
- ES:DX = process swapping in
- Note: called by OmniView to notify programs loaded before OmniView of state
- changes inside OmniView
- SeeAlso: AX=5405h
- --------T-155407-----------------------------
- INT 15 C - Omniview Multitasker - EXIT NOTIFICATION
- AX = 5407h
- Note: called by OmniView to notify programs loaded before OmniView of state
- changes inside OmniView
- SeeAlso: AX=5400h,INT 2F/AX=DE03h
- --------b-1560------------------------------------
- INT 15 - HUNTER 16 - SET SYSTEM CLOCK SPEED
- AH = 60h
- AL = new speed
- 00h normal (8 MHz)
- 01h Slow Mode 1 (4 MHz)
- 02h Slow Mode 2 (2 MHz)
- Note: the Husky Hunter 16 is an 8088-based ruggedized laptop. Other family
- members are the Husky Hunter, Husky Hunter 16/80, and Husky Hawk.
- SeeAlso: AX=6301h
- --------p-156000-----------------------------
- INT 15 U - HP 100LX/200LX - GET MAIN BATTERY LEVEL
- AX = 6000h
- Return: AX = battery level
- Note: multiply the returned value with 1Bh and add 622h to get millivolts
- SeeAlso: AX=6001h,AX=6002h,AX=6003h,AX=6004h
- --------p-156001-----------------------------
- INT 15 U - HP 100LX/200LX - GET BACKUP BATTERY LEVEL
- AX = 6001h
- Return: AX = battery level
- Note: multiply the returned value with 1Bh and add 622h to get millivolts
- SeeAlso: AX=6000h,AX=6002h
- --------p-156002-----------------------------
- INT 15 U - HP 100LX/200LX - GET POWER INFO
- AX = 6002h
- Return: AL = power settings (see #0419)
- SeeAlso: AX=6000h,AX=6003h,AX=6004h
-
- Bitfields for power settings:
- Bit(s) Description (Table 0419)
- 0-1 unused ???
- 2 card battery status low (OK if bit clear)
- 3 battery charging off (disabled if bits 3-5 clear)
- 4 battery charging slow
- 5 battery charging fast
- 6 power adaptor active
- 7 battery type NiCad (alkaline if bit clear)
- --------p-156003-----------------------------
- INT 15 U - HP 100LX/200LX - SET MAIN BATTERY TYPE
- AX = 6003h
- BL = battery type
- 00h alkaline
- 01h NiCad
- SeeAlso: AX=6000h,AX=6004h
- --------p-156004-----------------------------
- INT 15 U - HP 100LX/200LX - SET BATTERY CHARGING MODE
- AX = 6004h
- BL = charging
- 00h disabled
- 01h enabled
- SeeAlso: AX=6000h,AX=6003h
- --------b-1561------------------------------------
- INT 15 - HUNTER 16 - GET POWER LEVEL
- AH = 61h
- Return: AH = percentage of full power left (0..100)
- Desc: determine how much battery power is left
- SeeAlso: AH=62h,AH=66h,AH=73h"HUNTER"
- --------b-1561-------------------------------
- INT 15 U - HP 100LX/200LX - SET ANNOUNCIATORS POSITION
- AH = 61h
- AL = position (20h = left, 60h = right)
- Note: The announciators are the indicator symbols for the Shift and Fn keys
- in the bottom line
- SeeAlso: AH=62h"HP",INT 16/AH=02h
- --------b-1562------------------------------------
- INT 15 - HUNTER 16 - SET LOW POWER THRESHOLD
- AH = 62h
- AL = level (00h 5%, 01h 10%, ... 12h 95%)
- BX = interval between power low warnings in seconds (1..600)
- Return: AH = Status
- Desc: set the level (relative to full power) when power-low warnings begin
- and the interval between the warnings
- SeeAlso: AH=61h,AH=65h,AH=66h
- --------b-1562-------------------------------
- INT 15 U - HP 100LX/200LX - SET DISPLAY CONTRAST
- AH = 62h
- BL = contrast (00h-1Fh, 1Fh is the darkest)
- SeeAlso: AH=47h"HP",AH=61h"HP"
- --------b-156300----------------------------------
- INT 15 - HUNTER 16 - GET IDLE TIMEOUT
- AX = 6300h
- Return: AH = status
- BX = timeout in seconds (0-3600)
- Desc: get the idle timeout value, the interval without keyboard or
- communications activity before the system shuts down
- SeeAlso: AX=6301h
- --------b-156301----------------------------------
- INT 15 - HUNTER 16 - SET IDLE TIMEOUT
- AX = 6301h
- BX = timeout in seconds (0-3600)
- Desc: sets the idle timeout value, the interval without keyboard or
- communications activity before the system shuts down
- SeeAlso: AX=6300h
- --------b-1564------------------------------------
- INT 15 - HUNTER 16 - CONTROL RESUME MODE
- AH = 64h
- AL = new state
- 00h disable Resume mode
- 01h enable Resume mode
- Return: AH = status
- Desc: turn Resume mode on or off. In Resume mode the system starts in
- the application that was running when it shut down as if nothing
- had happened.
- SeeAlso: AH=67h,AH=68h,AH=69h
- --------b-1565------------------------------------
- INT 15 - HUNTER 16 - AUTHORISE CHARGING
- AH = 65h
- AL = charging level
- 01h charging not allowed
- 02h charging allowed until power down
- 03h charging allowed until batteries changed or fail.
- Ask user if charging is still allowed on next poweron
- 04h charging allowed indefinitely
- BX = 0203h
- CX = 0405h
- DX = 0607h
- Return: AH = status
- SeeAlso: AH=66h,AH=68h
- --------b-1566------------------------------------
- INT 15 - HUNTER 16 - SET BATTERY LEVEL
- AH = 66h
- AL = level in percent of maximum (0..100)
- Return: AH = status
- SeeAlso: AH=61h,AH=65h
- --------b-1567------------------------------------
- INT 15 - HUNTER 16 - CONTROL STOP MODE
- AH = 67h
- AL = mode when waiting for input
- 00h use STOP mode (allows communication)
- 01h use HALT mode (disallows communication)
- Return: AH = status
- Desc: select the power save mode to use when waiting for input
- SeeAlso: AH=69h
- --------b-1568------------------------------------
- INT 15 - HUNTER 16 - REQUEST POWER DOWN
- AH = 68h
- Desc: turns off the Hunter 16 if power down is allowed (see AH=69h)
- SeeAlso: AH=69h
- --------b-1569------------------------------------
- INT 15 - HUNTER 16 - CONTROL POWER DOWN AVAILABILITY
- AH = 69h
- AL = mode
- 00h inhibit power down
- 01h allow power down
- Return: AH = status
- SeeAlso: AH=67h,AH=68h,AH=6Ah
- --------b-156A------------------------------------
- INT 15 - HUNTER 16 - CONTROL SLOW MODE
- AH = 6Ah
- AL = mode
- 00h inhibit Slow mode
- 01h allow Slow mode
- Return: AH = status
- SeeAlso: AH=69h
- --------b-156B------------------------------------
- INT 15 - HUNTER 16 - GET ROM BIOS VERSION
- AH = 6Bh
- Return: BH = version number (ASCII)
- BL = release number (ASCII)
- CH = major??? release number (ASCII)
- CL = minor??? release number (ASCII)
- SeeAlso: AH=6Ch
- --------b-156C------------------------------------
- INT 15 - HUNTER 16 - GET SERIAL NUMBER
- AH = 6Ch
- Return: BL:CX = BCD serial number
- Note: when shipped, all Hunter 16s have the same Serial Number, but a
- different number can be stored (see AH=72h)
- SeeAlso: AH=6Bh,AH=72h
- --------b-156D------------------------------------
- INT 15 - HUNTER 16 - GET EVENT DETAIL
- AH = 6Dh
- Return: AH = 00h if successful
- CX:BX = event flags bit 0..31 (see #0420)
- Note: this function allows testing for events
- SeeAlso: AH=6Eh,AH=6Fh
-
- Bitfields for HUNTER 16 events:
- Bit(s) Description (Table 0420)
- 6 RI received
- 5 RTC Alarm
- 4 data received on COM2
- 3 data received on COM1
- 2 error on COM2
- 1 error on COM1
- 0 PWR button pressed
- --------b-156E------------------------------------
- INT 15 - HUNTER 16 - ENABLE/TRAP EVENT
- AH = 6Eh
- AL = Software Interrupt
- 00h do not trap event
- else trap as software interrupt number AL
- BH = event number (see AH=6Dh)
- BL = enable mask
- 00h disable event
- 01h enable event
- Return: AH = 00h if successful
- SeeAlso: AH=6Dh,AH=6Fh
- --------b-156F------------------------------------
- INT 15 - HUNTER 16 - ACKNOWLEDGE EVENT
- AH = 6Fh
- AL = event number (see AH=6Dh)
- Return: AH = 00h if successful
- Desc: Acknowledges the event, so the next similar event can be detected
- SeeAlso: AH=6Dh"HUNTER",AH=6Eh
- --------b-1570------------------------------------
- INT 15 - HUNTER 16 - CONTROL SOUND
- AH = 70h
- AL = new state
- 00h disable sound
- else enable sound
- Note: the Husky Hunter 16 is an 8088-based ruggedized laptop. Other family
- members are the Husky Hunter, Husky Hunter 16/80, and Husky Hawk.
- --------x-157000-----------------------------
- INT 15 - Tandy 1000SL/TL - READ FROM EEPROM
- AX = 7000h
- BL = number of word to read (00h-3Fh)
- Return: CF clear if function supported
- DX = contents of EEPROM word
- Note: newer Tandy 1000-series machines use EEPROM instead of CMOS RAM in
- the clock chip to store system configuration information
- SeeAlso: AX=7001h
- --------x-157001-----------------------------
- INT 15 - Tandy 1000SL/TL - WRITE TO EEPROM
- AX = 7001h
- BL = number of word to read (00h-3Fh)
- DX = new value for EEPROM word
- Return: CF clear if function supported
- Note: the EEPROMs are normally written only by the system setup program;
- changing the values can badly mess up a Tandy
- SeeAlso: AX=7000h
- ----------157002-----------------------------
- INT 15 U - Tandy 1000 Model ??? - GET ROM PAGE
- AX = 7002h
- Return: AL = ROM page mapped at 0E0000h (0-6 (13?))
- Note: some Tandy machines have DOS and DeskMate in a 512k paged ROM. The
- BIOS uses this call to determine what ROM page is mapped in the 64k
- segment at 0E0000h.
- the 1000TL has 8 64k ROM pages; page 7 is permanently mapped at
- 0F0000h. There may be 16 32k ROM pages on other systems.
- SeeAlso: AX=7003h,INT E0"DeskMate"
- ----------157003-----------------------------
- INT 15 U - Tandy 1000 Model ??? - SET ROM PAGE
- AX = 7003h
- DL = ROM page to be mapped at 0E0000h (0-6 (13?))
- Return: CF clear if valid ROM page specified
- Note: Some Tandy machines have DOS and DeskMate in a 512k paged ROM. The
- BIOS uses this call to map ROM pages in the 64k segment at 0E0000h.
- The 1000TL has 8 64k ROM pages; page 7 is permanently mapped at
- 0F0000h. There may be 16 32k ROM pages on other systems.
- SeeAlso: AX=7002h,INT E0"DeskMate"
- --------b-1571------------------------------------
- INT 15 - HUNTER 16 - SELECT POWER UP KEYS
- AH = 71h
- BL = column
- BH = row
- AL = column switch (00h disable, 01h enable)
- CL = row switch (00h disable, 01h enable)
- Return: AH = status
- SeeAlso: AH=7Bh,AH=88h
- --------b-157200----------------------------------
- INT 15 - HUNTER 16 - RESET SERIAL NUMBER
- AX = 7200h
- Return: AH = 00h if successful
- Desc: reset the serial number to the default serial number present when the
- Hunter 16 was shipped
- SeeAlso: AH=6Ch,AH=72h
- --------b-1572------------------------------------
- INT 15 - HUNTER 16 - REDIRECT SERIAL NUMBER
- AH = 72h
- AL nonzero
- DS:BX -> new serial number (6 ASCII digits)
- Return: AH = 00h if successful
- Desc: install a new serial number
- SeeAlso: AH=6Ch,AX=7200h
- --------b-1573------------------------------------
- INT 15 - HUNTER 16 - GET ORACLE GT POWER LEVEL
- AH = 73h
- AL = drive (0: A:, 1: B:)
- Return: AH = status
- 00h successful
- FFh Oracle GT drive not connected
- AL = power level in percent of maximum (0..100)
- Desc: get the power remaining in the Oracle GT batteries
- SeeAlso: AH=61h
- --------b-1574------------------------------------
- INT 15 - HUNTER 16 - SET BACKLIGHT POWER UP STATE
- AH = 74h
- AL = new level
- 01h off
- 02h unchanged
- 03h change level
- BL = desired level (00h-7Fh)
- Return: AH = status
- Desc: select the backlight level to use when the Hunter is next turned on
- SeeAlso: AH=64h,AH=75h,INT 10/AH=64h,INT 10/AH=78h
- --------b-1575------------------------------------
- INT 15 - HUNTER 16 - SET CONTRAST POWER UP STATE
- AH = 75h
- AL = new level
- 01h off
- 02h unchanged
- 03h change level
- BL = desired level (00h-7Fh)
- Return: AH = status
- Desc: select the LCD contrast level to use when the Hunter is next turned on
- SeeAlso: AH=63h,AH=74h
- --------b-1576------------------------------------
- INT 15 - HUNTER 16 - CONTROL POWER SAVE
- AH = 76h
- BX = power save control (see #0421)
- SeeAlso: AH=74h
-
- Bitfields for HUNTER 16 power save control:
- Bit(s) Description (Table 0421)
- 0 power save enabled
- 1 inhibit power save when waiting for COM1 data
- 2 inhibit power save when waiting for COM2 data
- 3 inhibit power save when waiting for data from barcode wand
- 4 inhibit power up on timer tick
- --------b-1579------------------------------------
- INT 15 - HUNTER 16 - REDIRECT LPT1
- AH = 79h
- AL = port to which to redirect (00h COM1, 01h COM2)
- --------b-157A------------------------------------
- INT 15 - HUNTER 16 - INVOKE HOT KEY
- AH = 7Ah
- Desc: this function has the same effect as pressing the HOT key
- SeeAlso: AH=7Bh
- --------b-157B------------------------------------
- INT 15 - HUNTER 16 - CONTROL HOT KEY
- AH = 7Bh
- AL = 00h prevent HOT key
- else allow HOT key
- Desc: Allow or prevent the HOT key function which is used to examine and
- change the Hunter setup
- SeeAlso: AH=71h,AH=7Ah,AH=7Ch
- --------b-157C------------------------------------
- INT 15 - HUNTER 16 - CONTROL HOT KEY POWER OPTION
- AH = 7Ch
- AL = 00h prevent HOT key power option
- else allow HOT key power option
- Desc: allow or prevent changing the power options
- SeeAlso: AH=7Bh,AH=7Dh
- --------b-157D------------------------------------
- INT 15 - HUNTER 16 - OVERRIDE LOW POWER TURN OFF
- AH = 7Dh
- AL = 00h turn off after 10 warnings
- else never turn off
- Desc: specify whether the Hunter 16 turns off after 10 low power warnings
- SeeAlso: AH=7Ch
- --------b-157E------------------------------------
- INT 15 - HUNTER 16 - CONTROL BATTERY CHANGE FACILITIES (APM)
- AH = 7Eh
- AL = 00h do not prompt
- else prompt
- Desc: select whether the user is prompted for the battery state if the
- battery cap has been off when the system is turned on
- SeeAlso: AH=7Fh
- --------b-157F------------------------------------
- INT 15 - HUNTER 16 - SET BATTERY TYPE (APM)
- AH = 7Fh
- AL = battery type
- 00h non-rechargeable
- else rechargeable
- SeeAlso: AH=7Eh
- --------B-1580-------------------------------
- INT 15 C - OS HOOK - DEVICE OPEN (AT,XT286,PS)
- AH = 80h
- BX = device ID
- CX = process ID
- CF clear
- Return: CF clear if successful
- AH = 00h
- CF set on error
- AH = status (see #0422)
- Note: this function should be hooked by a multitasker which wishes to keep
- track of device ownership; the default BIOS handler merely returns
- successfully
- SeeAlso: AH=81h,AH=82h
-
- (Table 0422)
- Values for status:
- 80h invalid command (PC,PCjr)
- 86h function not supported (XT)
- --------b-1580------------------------------------
- INT 15 - HUNTER 16 - GET/SET BATTERY CAPACITY (APM)
- AH = 80h
- AL = function
- 00h get
- Return: AL = capacity (500mA + AL * 50mA, max 40 = 2500mA)
- else set
- BL = battery capacity (same as AL above)
- SeeAlso: AH=61h"HUNTER",AH=81h"HUNTER"
- --------B-1581-------------------------------
- INT 15 C - OS HOOK - DEVICE CLOSE
- AH = 81h
- BX = device ID
- CX = process ID
- CF clear
- Return: CF clear if successful
- AH = 00h
- CF set on error
- AH = status (see #0422)
- Note: this function should be hooked by a multitasker which wishes to keep
- track of device ownership; the default BIOS handler merely returns
- successfully
- SeeAlso: AH=80h,AH=82h
- --------b-1581------------------------------------
- INT 15 - HUNTER 16 - CONTROL POWER OUTPUT
- AH = 81h
- AL = new state of power output (00h off, nonzero on)
- Desc: turn the +5V low power output on or off
- SeeAlso: AH=80h"HUNTER"
- --------B-1582-------------------------------
- INT 15 C - OS HOOK - PROGRAM TERMINATION
- AH = 82h
- BX = process ID
- CF clear
- Return: CF clear if successful
- AH = 00h
- CF set on error
- AH = status (see #0422)
- Notes: closes all devices opened by the given process ID with function 80h
- this function should be hooked by a multitasker which wishes to keep
- track of device ownership; the default BIOS handler merely returns
- successfully
- SeeAlso: AH=80h,AH=81h
- --------b-1582------------------------------------
- INT 15 - HUNTER 16 - SOUND OUTPUT
- AH = 82h
- DX = length (duration in seconds = DX * 666670 / frequency)
- BX = pitch (see #0423)
- Desc: Sound the tone specified in BX for the duration in DX
- SeeAlso: AX=1019h
-
- (Table 0423)
- Values for HUNTER 16 sound pitch:
- BX(dec) Note Frequency BX(dec) Note Frequency
- 425 G 1568.000 1515 A 440.000
- 451 F# 1479.503 1605 G# 415.307
- 477 F 1396.900 1701 G 392.000
- 506 E 1318.500 1802 F# 369.998
- 536 D# 1244.523 1909 F 349.230
- 568 D 1174.700 2022 E 329.630
- 601 C# 1108.749 2143 D# 311.127
- 637 C 1046.500 2270 D 293.660
- 675 B 958.770 2405 C# 277.183
- 715 A# 932.329 2548 MID C 261.630
- 758 A 880.000 2700 B 246.940
- 803 G# 830.609 2860 A# 233.081
- 850 G 783.990 3030 A 220.000
- 901 F# 739.990 3210 G# 207.654
- 954 F 698.460 3401 G 196.000
- 1011 E 659.260 3604 F# 184.996
- 1071 D# 622.257 3818 F 174.610
- 1135 D 587.330 4045 E 164.810
- 1203 C# 554.365 4286 D# 155.560
- 1274 C 523.250 4540 D 146.830
- 1350 B 493.880 4668 C# 142.827
- 1430 A# 466.162 4803 C 138.810
- --------B-1583-------------------------------
- INT 15 - BIOS - SET EVENT WAIT INTERVAL (AT,PS50+)
- AH = 83h
- AL = subfunction
- 00h set interval
- CX:DX = microseconds to delay
- ES:BX -> byte whose high bit is to be set at end of interval
- 01h cancel wait interval
- Return: CF set on error or function already busy
- AH = status
- 80h invalid command (PC,PCjr)
- 86h function not supported (XT and later)
- CF clear if successful
- Notes: the resolution of the wait period is 977 microseconds on many systems
- because many BIOSes use the 1/1024 second fast interrupt from the AT
- real-time clock chip which is available on INT 70
- IBM AT 1/10/84 BIOS ignores AL and always performs subfunction 00h
- SeeAlso: AH=41h,AH=86h,INT 70,MEM 0040h:0098h,MEM 0040h:009Ch
- --------b-1583------------------------------------
- INT 15 - HUNTER 16 - CONTROL SCREEN SYNCHRONISATION
- AH = 83h
- AL = state of LCD window (00h disabled, nonzero enabled)
- Desc: Enable/disable the facility where the displayed window tracks the
- cursor output to keep the focus visible
- --------B-1584-------------------------------
- INT 15 - BIOS - JOYSTICK SUPPORT (XT after 11/8/82,AT,XT286,PS)
- AH = 84h
- DX = subfunction
- 0000h read joystick switches
- Return: AL bits 7-4 = switch settings
- 0001h read positions of joysticks
- Return: AX = X position of joystick A
- BX = Y position of joystick A
- CX = X position of joystick B
- DX = Y position of joystick B
- Return: CF set on error
- AH = status (see #0422)
- CF clear if successful
- Notes: if no game port is installed, subfunction 0000h returns AL=00h (all
- switches open) and subfunction 0001h returns AX=BX=CX=DX=0000h
- a 250kOhm joystick typically returns 0000h-01A0h
- SeeAlso: AH=84h"V20-XT-BIOS"
- --------b-1584-------------------------------
- INT 15 - V20-XT-BIOS - JOYSTICK SUPPORT
- AH = 84h
- DX = subfunction
- 0000h read joystick switches
- Return: AL bits 7-4 = switch settings
- other: read positions of joysticks as indicated by bits 0-3
- Return: AX = X position of joystick A (if DX bit 0 set)
- BX = Y position of joystick A (if DX bit 1 set)
- CX = X position of joystick B (if DX bit 2 set)
- DX = Y position of joystick B (if DX bit 3 set)
- Return: CF set on error
- AH = status (see #0422)
- CF clear if successful
- Program: V20-XT-BIOS is a ROM BIOS replacement with extensions by Peter
- Koehlmann / c't magazine
- SeeAlso: AH=84h"PS",INT 10/AH=0Eh/CX=ABCDh
- --------b-158400----------------------------------
- INT 15 - HUNTER 16 - GET DISKETTE PORT
- AX = 8400h
- BH = Drive (0: A:, 1: B:)
- Return: AL = Port (0: COM1, >0: COM2)
- Desc: return the COM port used for the floppy drive
- SeeAlso: AX=8401h
- --------b-158401----------------------------------
- INT 15 - HUNTER 16 - SET DISKETTE PORT
- AX = 8401h
- BH = Drive (0: A:, 1: B:)
- BL = Port (0: COM1, >0: COM2)
- Desc: set the COM port used for the floppy drive
- SeeAlso: AX=8400h
- --------B-1585-------------------------------
- INT 15 C - OS HOOK - SysReq KEY ACTIVITY (AT,PS)
- AH = 85h
- AL = SysReq key action (00h pressed, 01h released)
- CF clear
- Return: CF clear if successful
- AH = 00h
- CF set on error
- AH = status (see #0422)
- Notes: called by keyboard decode routine
- the default handler simply returns successfully; programs which wish
- to monitor the SysReq key must hook this call
- the SysReq key is often labeled SysRq
- SeeAlso: INT 09
- --------b-158500----------------------------------
- INT 15 - HUNTER 16 - RESTORE POWER MENU (APM)
- AX = 8500h
- Desc: restore the standard power menu
- SeeAlso: AX=8501h"HUNTER"
- --------b-158501----------------------------------
- INT 15 - HUNTER 16 - SET POWER MENU (APM)
- AX = 8501h
- BL = user software interrupt number
- Desc: install an alternate power menu routine
- SeeAlso: AX=8500h"HUNTER"
- --------B-1586-------------------------------
- INT 15 - BIOS - WAIT (AT,PS)
- AH = 86h
- CX:DX = interval in microseconds
- Return: CF clear if successful (wait interval elapsed)
- CF set on error or AH=83h wait already in progress
- AH = status (see #0422)
- Note: the resolution of the wait period is 977 microseconds on many systems
- because many BIOSes use the 1/1024 second fast interrupt from the AT
- real-time clock chip which is available on INT 70; because newer
- BIOSes may have much more precise timers available, it is not
- possible to use this function accurately for very short delays unless
- the precise behavior of the BIOS is known (or found through testing)
- SeeAlso: AH=41h,AH=83h,INT 1A/AX=FF01h,INT 70
- --------b-1586------------------------------------
- INT 15 - HUNTER 16 - GET/SET SCREEN ATTRIBUTE TABLE
- AH = 86h
- AL = function (00h get, nonzero set)
- BX = 1234h
- DS:SI -> 256-byte Attribute buffer
- Note: In text modes each character has its attribute byte XOR'd with the
- corresponding byte in the attribute table. If the attribute is 15,
- 15 is XOR'd with Table[15]
- --------B-1587-------------------------------
- INT 15 - SYSTEM - COPY EXTENDED MEMORY
- AH = 87h
- CX = number of words to copy (max 8000h)
- ES:SI -> global descriptor table (see #0425)
- Return: CF set on error
- CF clear if successful
- AH = status (see #0424)
- Notes: copy is done in protected mode with interrupts disabled by the default
- BIOS handler; many 386 memory managers perform the copy with
- interrupts enabled
- this function is incompatible with the OS/2 compatibility box
- SeeAlso: AH=88h,AH=89h,INT 1F/AH=90h
-
- (Table 0424)
- Values for extended-memory copy status:
- 00h source copied into destination
- 01h parity error
- 02h interrupt error
- 03h address line 20 gating failed
- 80h invalid command (PC,PCjr)
- 86h unsupported function (XT,PS30)
-
- Format of global descriptor table:
- Offset Size Description (Table 0425)
- 00h 16 BYTEs zeros (used by BIOS)
- 10h WORD source segment length in bytes (2*CX-1 or greater)
- 12h 3 BYTEs 24-bit linear source address, low byte first
- 15h BYTE source segment access rights (93h)
- 16h WORD zero
- 18h WORD destination segment length in bytes (2*CX-1 or greater)
- 1Ah 3 BYTEs 24-bit linear destination address, low byte first
- 1Dh BYTE destination segment access rights (93h)
- 1Eh 18 BYTEs zeros (used by BIOS to build CS and SS descriptors)
- --------b-1587------------------------------------
- INT 15 - HUNTER 16 - SET INT 72h VECTOR
- AH = 87h
- DS:DX = new service routine
- Desc: set the INT 72h vector which is called in 2 cases:
- - when the machine is about to turn off or reboot, INT 72h is called
- with AH=0
- - when the machine is powering up INT 72h is called with AH=01h
- Note: the actual INT 72h vector must also be changed with INT 21/AH=25h
- --------B-1588-------------------------------
- INT 15 - SYSTEM - GET EXTENDED MEMORY SIZE (286+)
- AH = 88h
- Return: CF clear if successful
- AX = number of contiguous KB starting at absolute address 100000h
- CF set on error
- AH = status
- 80h invalid command (PC,PCjr)
- 86h unsupported function (XT,PS30)
- Notes: TSRs which wish to allocate extended memory to themselves often hook
- this call, and return a reduced memory size. They are then free to
- use the memory between the new and old sizes at will.
- the standard BIOS only returns memory between 1MB and 16MB; use AH=C7h
- for memory beyond 16MB
- not all BIOSes correctly return the carry flag, making this call
- unreliable unless one first checks whether it is supported through
- a mechanism other than calling the function and testing CF
- SeeAlso: AH=87h,AH=8Ah"Phoenix",AH=C7h,AX=DA88h,AX=E801h,AX=E820h
- --------b-1588------------------------------------
- INT 15 - HUNTER 16 - GET POWER UP KEYS
- AH = 88h
- Return: AH = 00h
- BX = column
- CL = row
- SeeAlso: AH=71h
- --------B-1589-------------------------------
- INT 15 - SYSTEM - SWITCH TO PROTECTED MODE
- AH = 89h
- BL = interrupt number of IRQ0 (IRQ1-7 use next 7 interrupts)
- BH = interrupt number of IRQ8 (IRQ9-F use next 7 interrupts)
- ES:SI -> GDT for protected mode (see #0426)
- Return: CF set on error
- AH = FFh error enabling address line 20
- CF clear if successful
- AH = 00h
- in protected mode at specified address
- BP may be destroyed; all segment registers change
- Notes: BL and BH must be multiples of 8
- the protected-mode CS must reference the same memory as the CS this
- function is called from because execution continues with the address
- following the interrupt call
- SeeAlso: AH=87h,AH=88h,INT 67/AX=DE0Ch
-
- Format of BIOS switch-to-protected-mode Global Descriptor Table:
- Offset Size Description (Table 0426)
- 00h 8 BYTEs null descriptor (initialize to zeros)
- 08h 8 BYTEs GDT descriptor (see #0427)
- 10h 8 BYTEs IDT descriptor
- 18h 8 BYTEs DS descriptor
- 20h 8 BYTEs ES
- 28h 8 BYTEs SS
- 30h 8 BYTEs CS
- 38h 8 BYTEs uninitialized, used to build descriptor for BIOS CS
-
- Format of segment descriptor table entry:
- Offset Size Description (Table 0427)
- 00h WORD segment limit, low word
- 02h 3 BYTEs segment base address, low 24 bits
- 05h BYTE access mode (see #0428)
- 06h BYTE 386+ extended access mode (see #0429)
- 07h BYTE 386+ segment base address, high 8 bits
- SeeAlso: #0426,INT 2C/AX=0002h,INT 31/AX=0009h
-
- Bitfields for segment descriptor table access mode field:
- Bit(s) Description (Table 0428)
- 3-0 segment type
- 4 descriptor type (1 = application, 0 = system)
- 6-5 descriptor privilege level
- 7 segment is present in RAM
- SeeAlso: #0427,#0429
-
- Bitfields for 386+ segment descriptor table extended access mode field:
- Bit(s) Description (Table 0429)
- 3-0 high 4 bits of segment limit
- 4 available
- 5 reserved (0)
- 6 default operation size (1 = 32 bits, 0 = 16 bits)
- 7 granularity (1 = 4K, 0 = byte)
- SeeAlso: #0427,#0428,#2245
- --------b-158900----------------------------------
- INT 15 - HUNTER 16 - GET POWER MODE
- AX = 8900h
- Return: AH = 00h
- BL = current power mode
- 00h Standard Power Mode (SPM)
- 01h Advanced Power Mode (APM)
- SeeAlso: AX=8901h
- --------b-158901----------------------------------
- INT 15 - HUNTER 16 - SET POWER MODE
- AX = 8901h
- BL = new mode
- 00h Standard Power Mode (SPM)
- 01h Advanced Power Mode (APM)
- Return: AH = 00h
- SeeAlso: AX=8900h
- --------b-158A------------------------------------
- INT 15 - HUNTER 16 - CONTROL POWER INPUT (SPM)
- AH = 8Ah
- AL = new state of Power Input (00h disabled, nonzero enabled)
- SI = 1234h
- DI = 5678h
- Return: AH = status
- 00h success
- FFh failure
- Desc: Enable or disable Power Input. When Power Input is disabled the AC
- adapter will neither charge the batteries nor supply power to the
- Hunter 16. Disable Power Input if using Alkaline batteries.
- --------b-158A-------------------------------
- INT 15 - Phoenix BIOS v4.0 - GET BIG MEMORY SIZE
- AH = 8Ah
- Return: DX:AX = extended memory size in K
- SeeAlso: AH=88h,AX=E801h,AX=E820h
- --------b-158B------------------------------------
- INT 15 - HUNTER 16 - GET/SET CHARGER TEMPERATURE OVERRIDE
- AH = 8Bh
- AL = function
- 00h get
- Return: BH = Maximum charging temperature
- Temp = -20 + (n * 0.63) degrees Centigrade
- BL = Minimum charging temperature
- else set
- BH = maximum charging temperature (as above)
- BL = minimum charging temperature (as above)
- Return: AH = status
- 00h success
- FFh failure
- Desc: get/set the temperature interval within which the charger should
- operate
- --------b-158C------------------------------------
- INT 15 - HUNTER 16 - GET/SET POWER SAVE ENTRY FLAG
- AH = 8Ch
- AL = function
- 00h get
- Return: BX = which operations disable power save (see #0430)
- else set
- BX = which operations should disable power save (see #0430)
- SeeAlso: AH=8Dh
-
- Bitfields for HUNTER 16 operations disabling power save:
- Bit(s) Description (Table 0430)
- 0 INT 10h prevents power save
- 1 INT 13h prevents power save
- 2 INT 14h prevents power save
- 3 INT 15h prevents power save
- 4 INT 1Ah prevents power save
- 5 INT 21h prevents power save
- 6 direct write to video RAM prevents power save
- 7 access to 8250 UART prevents power save
- 8 access to 8253 (Sound) prevents power save
- --------b-158D------------------------------------
- INT 15 - HUNTER 16 - GET/SET BOOST CHARGE (SPM)
- AH = 8Dh
- AL = function
- 00h get
- Return: AL = Fast Charge state (00h prevented, else allowed)
- nonzero set
- BH = Fast Charge state (00h prevent, nonzero allow)
- Return: AH = status
- 00h success
- FFh failure
- Desc: control whether Fast Charging (200ma rather than 70ma) is allowed
- SeeAlso: AH=8Ch
- --------B-1590-------------------------------
- INT 15 - OS HOOK - DEVICE BUSY (AT,PS)
- AH = 90h
- AL = device type (see #0431)
- ES:BX -> request block for type codes 80h through BFh
- CF clear
- Return: CF set if wait time satisfied
- CF clear if driver must perform wait
- AH = 00h
- Notes: type codes are allocated as follows:
- 00-7F non-reentrant devices; OS must arbitrate access
- 80-BF reentrant devices; ES:BX points to a unique control block
- C0-FF wait-only calls, no complementary INT 15/AH=91h call
- floppy and hard disk BIOS code uses this call to implement a timeout;
- for device types 00h and 01h, a return of CF set means that the
- timeout expired before the disk responded.
- this function should be hooked by a multitasker to allow other tasks
- to execute while the BIOS is waiting for I/O completion; the default
- handler merely returns with AH=00h and CF clear
- SeeAlso: AH=91h,INT 13/AH=00h,INT 17/AH=00h,INT 1A/AH=83h
-
- (Table 0431)
- Values for device type:
- 00h disk
- 01h diskette
- 02h keyboard
- 03h PS/2 pointing device
- 21h waiting for keyboard input (Phoenix BIOS)
- 80h network
- FBh digital sound (Tandy)
- FCh disk reset (PS)
- FDh diskette motor start
- FEh printer
- --------B-1591-------------------------------
- INT 15 - OS HOOK - DEVICE POST (AT,PS)
- AH = 91h
- AL = device type (see #0431)
- ES:BX -> request block for type codes 80h through BFh
- CF clear
- Return: AH = 00h
- Note: this function should be hooked by a multitasker to allow other tasks
- to execute while the BIOS is waiting for I/O completion; the default
- handler merely returns with AH=00h and CF clear
- SeeAlso: AH=90h
- --------B-1592-------------------------------
- INT 15 - IBM SurePath BIOS - Officially "Private" Function
- AH = 92h
- SeeAlso: AH=07h"IBM",AH=3Eh"IBM"
- --------B-15A0-------------------------------
- INT 15 - IBM SurePath BIOS - ACCESS LOADABLE-ABIOS SIGNATURE
- AH = A0h
- AL = function
- 00h get loadable-ABIOS signature
- Return: BL = signature value
- 00h loadable-ABIOS prompting not required
- A1h loadable-ABIOS prompting is required
- 01h write loadable-ABIOS signature
- BL = new signature value
- 00h loadable-ABIOS prompting not required
- A1h loadable-ABIOS prompting is required
- Return: CF clear if successful
- CF set on error
- AH = status
- 00h successful
- 01h invalid subfunction
- 02h unable to read/write signature
- 86h function not supported
- Note: IBM classifies this function as optional
- SeeAlso: AH=08h"IBM"
- --------x-15A100-----------------------------
- INT 15 U - AMI PCI BIOS - SET ??? FLAG
- AX = A100h
- Return: AX = 0000h
- CF clear
- BX,CX,DI may be destroyed
- Desc: sets bit 7 of CMOS RAM location 37h and updates the CMOS checksum in
- locations 3Eh and 3Fh
- Notes: in the examined version of the BIOS, nonzero values in AL cause it to
- drop through to checking the next possible value of AH, i.e. only
- subfunction 00h is supported
- also supported by Dell XPS P90 and IBM PS/PV 6384, which also use
- AMI BIOSes
- --------B-15AB-------------------------------
- INT 15 - IBM SurePath BIOS - Officially "Private" Function
- AH = ABh
- SeeAlso: AH=07h"IBM",AH=3Eh"IBM"
- ----------15B001CX5354-----------------------
- INT 15 - Stac ??? - INSTALLATION CHECK
- AX = B001h
- CX = 5354h ('ST')
- DX = 4143h ('AC')
- Return: AX = 4F4Bh ('OK') if installed
- Note: this function is called by Novell DOS 7 NWCACHE v1.01
- --------n-15BA10-----------------------------
- INT 15 - HP OmniShare - Pen Driver - REPORT PEN CONTROL AREA EVENT
- AX = BA10h
- BL = event
- 00h the pen left control areas
- 01h the pen entered the Brightness- area
- 02h the pen entered the Brightness+ area
- 03h the pen entered the Contrast- area
- 04h the pen entered the Contrast+ area
- Return: CF clear if successfully processed
- CF set on error (function not supported, ie. not an OmniShare BIOS)
- Note: The pen driver is responsible for detecting when the pen enters and
- leaves control areas of the OmniShare tablet, and notifying the BIOS.
- The BIOS manages the events, including the autorepetition, and sets
- the status LEDs.
- SeeAlso: AX=BA20h,AX=BA13h
- --------n-15BA11-----------------------------
- INT 15 - HP OmniShare - Pen Driver - SET THE COMMUNICATION LED STATE
- AX = BA11h
- BL = new LED state (00h steady, 01h flashing)
- Return: CF clear if successful
- CF set on error
- Note: this function is for use by communication software to give visual
- feedback of active communications even if the display is in standby
- mode.
- SeeAlso: AX=BA10h,AX=BA24h
- --------n-15BA12-----------------------------
- INT 15 - HP OmniShare - Pen Driver - STORE PEN BATTERY CHARGE
- AX = BA12h
- BL = new battery state (00h good, 01h low charge)
- Return: CF set on error
- CF clear if successfully stored in CMOS
- Note: The last report will be displayed by the Power-On Self Test the next
- time the OmniShare boots. This allows something meaningful to be
- reported even if the pen is not detected during the POST.
- SeeAlso: AX=BA13h
- --------n-15BA13-----------------------------
- INT 15 - HP OmniShare - Pen Driver - GET PEN BATTERY CHARGE
- AX = BA13h
- Return: CF clear if successful
- BL = pen battery state (00h good, 01h low charge)
- CF set on error
- Note: returns the last value set by AX=BA12h.
- SeeAlso: AX=BA12h
- --------p-15BA20-----------------------------
- INT 15 - HP OmniShare - STANDBY.COM - INSTALLATION CHECK
- AX = BA20h
- Return: CF clear if successful (installed)
- CF set on error (not installed)
- Notes: The display controller can enter a standby mode after a given timeout,
- to conserve power or (for the OmniShare) to increase the life of
- the backlight.
- A side effect of standby mode is that the communications LED turns on
- automatically when the display is in standby mode. This is done in
- hardware, and is intended to show that the unit is still on.
- SeeAlso: AX=BA10h,AX=BA20h,AX=BA22h,AX=BA24h,AX=BA26h
- --------p-15BA21-----------------------------
- INT 15 - HP OmniShare - STANDBY.COM - SET STANDBY DURATION
- AX = BA21h
- BL = new timeout before standby mode in minutes (01h-0Fh)
- 00h to disable automatic switch to standby mode
- Return: CF clear if successful
- CF set on error (function not supported)
- Note: The actual timeout with a GD6205 controller is ((N*64)-32) seconds,
- instead of (N*60) seconds as documented.
- SeeAlso: AX=BA20h,AX=BA22h
- --------p-15BA22-----------------------------
- INT 15 - HP OmniShare - STANDBY.COM - GET STANDBY DURATION
- AX = BA22h
- Return: CF clear if successful
- BL = standy duration in minutes (01h-0Fh), or 00h if disabled
- CF set on error (function not supported)
- Note: The actual timeout with a GD6205 controller is ((N*64)-32) seconds,
- instead of (N*60) seconds as documented.
- SeeAlso: AX=BA20h,AX=BA21h
- --------p-15BA23-----------------------------
- INT 15 - HP OmniShare - STANDBY.COM - TURN ON THE SCREEN IMMEDIATELY
- AX = BA23h
- Return: CF clear if successful
- CF set on error
- SeeAlso: AX=BA11h,AX=BA20h,AX=BA24h
- --------p-15BA24-----------------------------
- INT 15 - HP OmniShare - STANDBY.COM - TURN OFF THE SCREEN IMMEDIATELY
- AX = BA24h
- Return: CF clear if successful
- CF set on error
- Note: This function is not implemented yet. Reserved for future versions
- of the OmniShare.
- SeeAlso: AX=BA11h,AX=BA20h,AX=BA23h
- --------p-15BA25-----------------------------
- INT 15 - HP OmniShare - STANDBY.COM - PREPARE FOR UNINSTALL
- AX = BA25h
- Return: CF clear if successful
- AX = 25BAh
- BX = PSP of STANDBY.COM resident portion
- DX:CX -> previous INT 15 handler
- CF set on error
- Note: This function is used internally by the STANDBY.COM /u option, and
- should not be used by application programs.
- SeeAlso: AX=BA20h
- --------p-15BA26-----------------------------
- INT 15 - HP OmniShare - STANDBY.COM - IS THE DISPLAY IN STANDBY MODE?
- AX = BA26h
- Return: CF clear if successful
- AL = display state (00h active, 01h in standby mode)
- CF set on error (function not supported)
- SeeAlso: AX=BA20h,AX=BA23h
- --------p-15BA27-----------------------------
- INT 15 - HP OmniShare - STANDBY.COM - RESERVED FUNCTIONS
- AX = BA27h to BA2Fh
- Desc: reserved for future use
- --------b-15BC-------------------------------
- INT 15 - Phoenix 386 BIOS - DETERMINE CPU SPEED FOR DELAY LOOPS
- AH = BCh
- Return: CF clear
- (Phoenix 1.10 10a) BYTE 0040h:00B0h set to delay loop count
- (Dell 4xxDE BIOS A11) WORD 0040h:00ECh set to delay loop count
- Note: this function reads system timer channel 0 twice, then does
- calculations on the returned values to determine the delay loop
- counter needed by the BIOS for beeps and floppy timeouts
- SeeAlso: AX=2305h,MEM 0040h:00B0h
- --------E-15BF00-----------------------------
- INT 15 - Rational Systems DOS/16M - ???
- AX = BF00h
- ???
- Return: ???
- Note: under DESQview/X 1.02 DVDOS4GX.DVR, this call is identical to AX=BF02h
- SeeAlso: AX=BF02h
- --------E-15BF01-----------------------------
- INT 15 - Rational Systems DOS/16M - ???
- AX = BF01h
- ???
- Return: ???
- Notes: under DESQview/X 1.02 DVDOS4GX.DVR, this call is identical to AX=BF02h
- called by DOS/4GW
- SeeAlso: AX=BF00h,AX=BF02h
- --------E-15BF02DX0000-----------------------
- INT 15 - Rational Systems DOS/16M - INSTALLATION CHECK
- AX = BF02h
- DX = 0000h
- Return: DX = nonzero if installed
- DX:SI -> XBRK structure (see #0432)
- Note: this function is also supported by DOS/4G
- SeeAlso: AX=BF01h,AX=BFDCh,AX=BFDEh/BX=0000h
- SeeAlso: INT 21/AH=FFh/DH=0Eh,INT 2F/AH=A1h,INT 2F/AX=F100h,INT 2F/AX=FBA1h
-
- Format of DOS/16M XBRK structure:
- Offset Size Description (Table 0432)
- 00h DWORD linear address of first available byte
- 04h DWORD linear address of last available byte + 1 ???
- 08h DWORD real-mode address of XBRK structure???
- 0Ch DWORD ???
- 10h 2 BYTEs ???
- 12h WORD segment of ???
- 14h 8 BYTEs ???
- 1Ch 512 BYTEs protected-mode IDT
- 21Ch N BYTEs protected-mode GDT
- --------E-15BF03-----------------------------
- INT 15 - Rational Systems DOS/4GW - UNINSTALL???
- AX = BF03h
- BX = PSP segment of extender
- ???
- Return: ???
- Note: if BX is not the PSP segment of the extender, it passes the call down
- the INT 15 chain; this allows nested instances of the extender
- SeeAlso: AX=BF06h
- --------E-15BF04-----------------------------
- INT 15 - Rational Systems DOS/4GW - ???
- AX = BF04h
- BX = PSP segment of extender
- Return: nothing???
- Notes: if BX is not the PSP segment of the extender, it passes the call down
- the INT 15 chain; this allows nested instances of the extender
- grabs INT 2Fh and installs handlers for INT 2F/AX=1605h-1607h
- SeeAlso: INT 2F/AX=1607h/BX=22C0h
- --------E-15BF05-----------------------------
- INT 15 - Rational Systems DOS/4GW - INITIALIZE PROTECTED-MODE INTERFACE
- AX = BF05h
- BX = PSP segment of extender
- Return: nothing???
- Notes: if BX is not the PSP segment of the extender, it passes the call down
- the INT 15 chain; this allows nested instances of the extender
- calls INT 67/AX=DE01h if ???
- --------E-15BF06-----------------------------
- INT 15 - Rational Systems DOS/4GW - ???
- AX = BF06h
- BX = PSP segment of extender
- ???
- Return: ???
- Note: if BX is not the PSP segment of the extender, it passes the call down
- the INT 15 chain; this allows nested instances of the extender
- SeeAlso: AX=BF03h
- --------E-15BFDCDX0000-----------------------
- INT 15 - Rational Systems DOS/4GW - INSTALLATION CHECK
- AX = BFDCh
- DX = 0000h
- SI = 0000h
- Return: DX = nonzero if installed
- DX:SI -> XBRK structure (see #0432)
- SeeAlso: AX=BF02h
- --------E-15BFDEBX0000-----------------------
- INT 15 - DESQview/X - DVDOS4GX.DVR - INSTALLATION CHECK
- AX = BFDEh
- BX = 0000h
- Return: AX = ??? (0003h)
- BX = FFFFh
- SeeAlso: AX=BF02h
- --------E-15BFDEBX0001-----------------------
- INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET PROCESS MANAGER NAME
- AX = BFDEh
- BX = 0001h
- Return: BX = 0000h (success)
- CX:DX -> name of process manager executable
- SeeAlso: AX=BFDEh/BX=0000h
- --------E-15BFDEBX0002-----------------------
- INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - SET ???
- AX = BFDEh
- BX = 0002h
- CX:DX -> ???
- Return: BX = 0000h (success)
- SeeAlso: AX=BFDEh/BX=0000h,AX=BFDEh/BX=0003h
- --------E-15BFDEBX0003-----------------------
- INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET ???
- AX = BFDEh
- BX = 0003h
- Return: BX = 0000h (success)
- CX:DX -> ???
- SeeAlso: AX=BFDEh/BX=0000h,AX=BFDEh/BX=0002h
- --------E-15BFDEBX0004-----------------------
- INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - ???
- AX = BFDEh
- BX = 0004h
- CL = ???
- Return: BX = 0000h (success)
- CX:DX -> XBRK structure (see #0432)
- SeeAlso: AX=BFDEh/BX=0000h
- --------E-15BFDEBX0005-----------------------
- INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - ???
- AX = BFDEh
- BX = 0005h
- CX = new value for ???
- Return: BX = 0000h (success)
- AX = old value of ???
- DS:SI -> ??? (if AX nonzero on return)
- ES:DI -> ??? (if AX zero on return)
- Note: called by DOS4GW.EXE
- SeeAlso: AX=BFDEh/BX=0000h
- --------E-15BFDEBX0006-----------------------
- INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET ???
- AX = BFDEh
- BX = 0006h
- Return: BX = 0000h (success)
- AH = interrupt number??? (BEh)
- CX:DX = ???
- SeeAlso: AX=BFDEh/BX=0000h,AX=BFDEh/BX=0007h,INT BE"DESQview"
- --------E-15BFDEBX0007-----------------------
- INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - SET ???
- AX = BFDEh
- BX = 0007h
- CX:DX = ???
- Return: BX = 0000h (success)
- SeeAlso: AX=BFDEh/BX=0000h,AX=BFDEh/BX=0006h
- --------E-15BFDEBX0008-----------------------
- INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - ???
- AX = BFDEh
- BX = 0008h
- CX = segment of ???
- DS = ???
- Return: BX = status
- 0000h successful
- AL = ??? (80h or C0h)
- DX = ??? (0603h) if AL=C0h
- 0001h failed
- AX = 0000h
- Note: called by DOS4GW.EXE
- SeeAlso: AX=BFDEh/BX=0000h
- --------E-15BFDEBX0009-----------------------
- INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET PROTECTED MODE PROGRAM LOADER
- AX = BFDEh
- BX = 0009h
- Return: BX = 0000h (success)
- CX:DX -> full pathname to LOAD32.EXP
- SeeAlso: AX=BFDEh/BX=0000h
- --------E-15BFDEBX000A-----------------------
- INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - DECREMENT ???
- AX = BFDEh
- BX = 000Ah
- Return: BX = 0000h (success)
- AX = new value of ??? counter
- Notes: also resets a variety of values if the counter goes negative
- called by DOS4GW.EXE
- SeeAlso: AX=BFDEh/BX=0000h,AX=BFDEh/BX=000Bh
- --------E-15BFDEBX000B-----------------------
- INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - INCREMENT ???
- AX = BFDEh
- BX = 000Bh
- Return: AX = new value of ??? counter
- Note: called by DOS4GW.EXE
- SeeAlso: AX=BFDEh/BX=0000h,AX=BFDEh/BX=000Ah
- --------E-15BFDEBX000C-----------------------
- INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - ???
- AX = BFDEh
- BX = 000Ch
- CL = ???
- 00h
- nonzero
- Return: ???
- SeeAlso: AX=BFDEh/BX=0000h
- --------E-15BFDEBX000D-----------------------
- INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - ???
- AX = BFDEh
- BX = 000Dh
- ???
- Return: ???
- SeeAlso: AX=BFDEh/BX=0000h
- --------E-15BFDEBX000E-----------------------
- INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - ???
- AX = BFDEh
- BX = 000Eh
- DX:CX -> ???
- Return: AX = segment of handle for calling task
- BX = ??? (probably destroyed)
- DX:CX -> ???
- SeeAlso: AX=BFDEh/BX=0000h,AX=BFDEh/BX=000Fh,AX=BFDEh/BX=0013h
- --------E-15BFDEBX000F-----------------------
- INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - ???
- AX = BFDEh
- BX = 000Fh
- Return: AX = segment of handle for calling task
- BX = ??? (probably destroyed)
- DX:CX -> ???
- Note: identical to AX=BFDEh/BX=000Eh with CX:DX = 0000h:0000h
- SeeAlso: AX=BFDEh/BX=000Eh,AX=BFDEh/BX=0010h
- --------E-15BFDEBX0010-----------------------
- INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET TASK HANDLE
- AX = BFDEh
- BX = 0010h
- Return: AX = segment of caller's task handle
- BX destroyed
- SeeAlso: AX=BFDEh/BX=000Fh
- --------E-15BFDEBX0011-----------------------
- INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET ???
- AX = BFDEh
- BX = 0011h
- Return: CX = code segment of DVDOS4GX.DVR
- BX = ??? (0004h)
- SeeAlso: AX=BFDEh/BX=0000h
- --------E-15BFDEBX0012-----------------------
- INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET ???
- AX = BFDEh
- BX = 0012h
- Return: DX = code segment of DVDOS4GX.DVR
- BX = ??? (012Ch)
- CX = ??? (0006h)
- SeeAlso: AX=BFDEh/BX=0000h
- --------E-15BFDEBX0013-----------------------
- INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET ???
- AX = BFDEh
- BX = 0013h
- Return: DX:CX -> ???
- SeeAlso: AX=BFDEh/BX=000Eh
- --------E-15BFDEBX0014-----------------------
- INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - LOCK ??? MAILBOX
- AX = BFDEh
- BX = 0014h
- CX = index of ??? mailbox
- (0000h-0004h valid, but no range checking done)
- Return: AX,BX destroyed
- SeeAlso: AX=BFDEh/BX=0015h,AX=BFDEh/BX=0017h
- --------E-15BFDEBX0015-----------------------
- INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - UNLOCK ??? MAILBOX
- AX = BFDEh
- BX = 0015h
- CX = index of ??? mailbox
- (0000h-0004h valid, but no range checking done)
- Return: AX,BX destroyed
- SeeAlso: AX=BFDEh/BX=0014h,AX=BFDEh/BX=0016h
- --------E-15BFDEBX0016-----------------------
- INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - CHECK IF ??? MAILBOX OWNED
- AX = BFDEh
- BX = 0016h
- CX = index of ??? mailbox
- (0000h-0004h valid, but no range checking done)
- Return: AX = status
- 0000h no one owns mailbox
- 0001h mailbox has an owner
- BX destroyed
- SeeAlso: AX=BFDEh/BX=0015h,AX=BFDEh/BX=0017h
- --------E-15BFDEBX0017-----------------------
- INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET ??? MAILBOX OWNER
- AX = BFDEh
- BX = 0017h
- CX = index of ??? mailbox
- (0000h-0004h valid, but no range checking done)
- Return: AX = segment of mailbox owner's handle
- BX = segment of caller's task handle
- SeeAlso: AX=BFDEh/BX=0015h,AX=BFDEh/BX=0016h
- --------E-15BFDEBXFFFD-----------------------
- INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET ???
- AX = BFDEh
- BX = FFFDh
- Return: CX:DX = ???
- SeeAlso: AX=BFDEh/BX=FFFEh
- --------E-15BFDEBXFFFE-----------------------
- INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - SET ???
- AX = BFDEh
- BX = FFFEh
- CX:DX = ???
- SeeAlso: AX=BFDEh/BX=FFFDh
- --------E-15BFDEBXFFFF-----------------------
- INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - NOP
- AX = BFDEh
- BX = FFFFh
- SeeAlso: AX=BFDEh/BX=0000h
- --------B-15C0-------------------------------
- INT 15 - SYSTEM - GET CONFIGURATION (XT after 1/10/86,AT mdl 3x9,CONV,XT286,PS)
- AH = C0h
- Return: CF set if BIOS doesn't support call
- CF clear on success
- ES:BX -> ROM table (see #0433)
- AH = status
- 00h successful
- 86h unsupported function
- Notes: the 1/10/86 XT BIOS returns an incorrect value for the feature byte
- the configuration table is at F000h:E6F5h in 100% compatible BIOSes
- Dell machines contain the signature "DELL" or "Dell" at absolute FE076h
- and a model byte at absolute address FE845h (see #0440)
- Hewlett-Packard machines contain the signature "HP" at F000h:00F8h and
- a product identifier at F000h:00FAh (see #0443)
- Compaq machines can be identified by the signature string "COMPAQ" at
- F000h:FFEAh, and is preceded by additional information (see #0441)
- Tandy 1000 machines contain 21h in the byte at F000h:C000h and FFh in
- the byte at FFFFh:000Eh; Tandy 1000SL/TL machines only provide the
- first three data bytes (model/submodel/revision) in the returned
- table
- Toshiba laptops contain the signature "TOSHIBA" at FE010h as part of
- a laptop information record at F000h:E000h (see #0444)
- some AST machines contain the string "COPYRIGHT AST RESEARCH" one byte
- past the end of the configuration table
- the Phoenix 386 BIOS contains a second version and date string
- (presumably the last modification for that OEM version) beginning at
- F000h:FFD8h, with each byte doubled (so that both ROM chips contain
- the complete information)
- SeeAlso: AH=C7h,AH=C9h,AX=D100h,AX=D103h
-
- Format of ROM configuration table:
- Offset Size Description (Table 0433)
- 00h WORD number of bytes following
- 02h BYTE model (see #0439)
- 03h BYTE submodel (see #0439)
- 04h BYTE BIOS revision: 0 for first release, 1 for 2nd, etc.
- 05h BYTE feature byte 1 (see #0434)
- 06h BYTE feature byte 2 (see #0435)
- 07h BYTE feature byte 3 (see #0436)
- 08h BYTE feature byte 4 (see #0437)
- 09h BYTE feature byte 5 (see #0438)
- ??? (08h) (Phoenix 386 v1.10)
- ??? (0Fh) (Phoenix 486 v1.03 PCI)
- ---AWARD BIOS---
- 0Ah N BYTEs AWARD copyright notice
- ---Phoenix BIOS---
- 0Ah BYTE ??? (00h)
- 0Bh BYTE major version
- 0Ch BYTE minor version (BCD)
- 0Dh 4 BYTEs ASCIZ string "PTL" (Phoenix Technologies Ltd)
- ---Quadram Quad386---
- 0Ah 17 BYTEs ASCII signature string "Quadram Quad386XT"
-
- Bitfields for feature byte 1:
- Bit(s) Description (Table 0434)
- 7 DMA channel 3 used by hard disk BIOS
- 6 2nd 8259 installed
- 5 Real-Time Clock installed
- 4 INT 15/AH=4Fh called upon INT 09h
- 3 wait for external event (INT 15/AH=41h) supported
- 2 extended BIOS area allocated (usually at top of RAM)
- 1 bus is Micro Channel instead of ISA
- 0 system has dual bus (Micro Channel + ISA)
- SeeAlso: #0433,#0435
-
- Bitfields for feature byte 2:
- Bit(s) Description (Table 0435)
- 7 32-bit DMA supported
- 6 INT 16/AH=09h (keyboard functionality) supported (see #0509)
- 5 INT 15/AH=C6h (get POS data) supported
- 4 INT 15/AH=C7h (return memory map info) supported
- 3 INT 15/AH=C8h (en/disable CPU functions) supported
- 2 non-8042 keyboard controller
- 1 data streaming supported
- 0 reserved
- SeeAlso: #0433,#0436,AH=C6h,AH=C7h,AH=C8h,INT 16/AH=09h
-
- Bitfields for feature byte 3:
- Bit(s) Description (Table 0436)
- 7 not used
- 6-5 reserved
- 4 POST supports ROM-to-RAM enable/disable
- 3 SCSI subsystem supported on system board
- 2 information panel installed
- 1 IML (Initial Machine Load) system (BIOS loaded from disk)
- 0 SCSI supported in IML
- SeeAlso: #0433,#0435,#0436
-
- Bitfields for feature byte 4:
- Bit(s) Description (Table 0437)
- 7 IBM "private" (set on N51SX, CL57SX)
- 6 system has EEPROM
- 5-3 ABIOS presence
- 001 not supported
- 010 supported in ROM
- 011 supported in RAM (must be loaded)
- 2 "private"
- 1 system supports memory split at/above 16M
- 0 POSTEXT directly supported by POST
- SeeAlso: #0433,#0436,#0438
-
- Bitfields for feature byte 5 (IBM):
- Bit(s) Description (Table 0438)
- 7-5 IBM "private"
- 4-2 reserved
- 1 system has enhanced mouse mode
- 0 flash EPROM
- SeeAlso: #0433,#0437
-
- (Table 0439)
- Values for model/submodel/revision:
- Model Submdl Rev BIOS date System
- FFh * * 04/24/81 PC (original)
- FFh * * 10/19/81 PC (some bugfixes)
- FFh * * 10/27/82 PC (HD, 640K, EGA support)
- FFh 00h rev ??? Tandy 1000SL
- FFh 01h rev ??? Tandy 1000TL
- FFh 46h *** ??? Olivetti M15
- FEh * * 08/16/82 PC XT
- FEh * * 11/08/82 PC XT and Portable
- FEh * * ../..x.. Toshiba laptops up to ~1987
- ("x"=product ID) (see #0445)
- FEh 43h *** ??? Olivetti M240
- FEh A6h ??? ??? Quadram Quad386
- FDh * * 06/01/83 PCjr
- FCh * * 01/10/84 AT models 068,099 6 MHz 20MB
- FCh * * 02/25/93 Linux DOSEMU (all versions)
- FCh 00h 00h ??? PC3270/AT
- FCh 00h 01h 06/10/85 AT model 239 6 MHz 30MB
- FCh 00h > 01h ??? 7531/2 Industrial AT
- FCh 01h 00h 11/15/85 AT models 319,339 8 MHz, Enh Keyb, 3.5"
- FCh 01h 00h 09/17/87 Tandy 3000
- FCh 01h 00h ../..x.. Toshiba laptops since ~1988
- ("x"=product ID) (see #0445)
- FCh 01h 00h 03/08/93 Compaq DESKPRO/i
- FCh 01h 00h various Compaq DESKPRO, SystemPro, ProSignia
- FCh 01h 00h 07/20/93 Zenith Z-Lite 425L
- FCh 01h 00h 04/09/90 AMI BIOS
- FCh 01h 20h 06/10/92 AST
- FCh 01h 30h ??? Tandy 3000NL
- FCh 01h ??? ??? Compaq 286/386
- FCh 02h 00h 04/21/86 PC XT-286
- FCh 02h 00h various Compaq LTE Lite
- FCh 02h 00h 08/05/93 Compaq Contura 486/486c/486cx
- FCh 02h 00h 08/11/88 SoftWindows 1.0.1 (Power Macintosh)
- FCh 04h 00h 02/13/87 ** PS/2 Model 50 (10 MHz/1 ws 286)
- FCh 04h 01h 05/09/87 PS/2 Model 50 (10 Mhz 286, LW-type 32)
- FCh 04h 02h ??? PS/2 Model 50
- FCh 04h 02h 01/28/88 PS/2 Model 50Z (10 Mhz 286, LW-type 33)
- FCh 04h 03h 04/18/88 PS/2 Model 50Z (10 MHz/0 ws 286)
- FCh 04h 04h ??? PS/2 Model 50Z
- FCh 05h 00h 02/13/87 ** PS/2 Model 60 (10 MHz 286)
- FCh 06h 00h ??? IBM 7552-140 "Gearbox"
- FCh 06h 01h ??? IBM 7552-540 "Gearbox"
- FCh 08h *** ??? Epson, unknown model
- FCh 08h 00h ??? PS/2 Model 25/286
- FCh 09h 00h ??? PS/2 Model 25 (10 MHz 286)
- FCh 09h 00h 08/25/88 PS/2 Model 30 286 (10 Mhz, LW-type 37)
- FCh 09h 02h 06/28/89 PS/2 Model 30-286
- FCh 09h 02h 06/28/89 PS/2 Model 25 286 (10 Mhz, LW-type 37)
- FCh 0Bh 00h 12/01/89 PS/1 (LW-Type 44)
- FCh 0Bh 00h 02/16/90 PS/1 Model 2011 (10 MHz 286)
- FCh 20h 00h 02/18/93 Compaq ProLinea
- FCh 30h *** ??? Epson, unknown model
- FCh 31h *** ??? Epson, unknown model
- FCh 33h *** ??? Epson, unknown model
- FCh 42h *** ??? Olivetti M280
- FCh 45h *** ??? Olivetti M380 (XP 1, XP3, XP 5)
- FCh 48h *** ??? Olivetti M290
- FCh 4Fh *** ??? Olivetti M250
- FCh 50h *** ??? Olivetti M380 (XP 7)
- FCh 51h *** ??? Olivetti PCS286
- FCh 52h *** ??? Olivetti M300
- FCh 81h 00h 01/15/88 Phoenix 386 BIOS v1.10 10a
- FCh 81h 01h ??? "OEM machine"
- FCh 82h 01h ??? "OEM machine"
- FCh 94h 00h ??? Zenith 386
- FBh 00h 01h 01/10/86 PC XT-089, Enh Keyb, 3.5" support
- FBh 00h 01h 05/13/94 HP 200LX 2MB BIOS 1.01 A D german
- FBh 00h 02h 05/09/86 PC XT
- FBh 00h 04h 08/19/93 HP 100LX 1MB BIOS 1.04 A
- FBh 4Ch *** ??? Olivetti M200
- FAh 00h 00h 09/02/86 PS/2 Model 30 (8 MHz 8086)
- FAh 00h 01h 12/12/86 PS/2 Model 30
- FAh 00h 02h 02/05/87 PS/2 Model 30
- FAh 01h 00h 06/26/87 PS/2 Model 25/25L (8 MHz 8086)
- FAh 30h 00h ??? IBM Restaurant Terminal
- FAh 4Eh *** ??? Olivetti M111
- FAh FEh 00h ??? IBM PCradio 9075
- F9h 00h 00h 09/13/85 PC Convertible
- F9h FFh 00h ??? PC Convertible
- F8h 00h 00h 03/30/87 ** PS/2 Model 80 (16MHz 386)
- F8h 00h 00h ??? PS/2 Model 75 486 (33Mhz 486)
- F8h 01h 00h 10/07/87 PS/2 Model 80 (20MHz 386)
- F8h 02h 00h ??? PS/2 Model 55-5571
- F8h 04h 00h 01/29/88 PS/2 Model 70 (20 Mhz 386DX,LW-type 33)
- F8h 04h 02h 04/11/88 PS/2 Model 70 20MHz, type 2 system brd
- F8h 04h 03h 03/17/89 PS/2 Model 70 20MHz, type 2 system brd
- F8h 05h 00h ??? IBM PC 7568
- F8h 06h 00h ??? PS/2 Model 55-5571
- F8h 07h 00h ??? IBM PC 7561/2
- F8h 07h 01h ??? PS/2 Model 55-5551
- F8h 07h 02h ??? IBM PC 7561/2
- F8h 07h 03h ??? PS/2 Model 55-5551
- F8h 09h 00h 01/29/88 PS/2 Model 70 16MHz 386DX, type 1 sysbd
- F8h 09h 02h 04/11/88 PS/2 Model 70 some models
- F8h 09h 03h 03/17/89 PS/2 Model 70 some models
- F8h 09h 04h 12/15/89 PS/2 Model 70 (16 Mhz 386, LW-type 33)
- F8h 0Bh 00h 01/18/89 PS/2 Model P70 (8573-121) typ 2 sys brd
- F8h 0Bh 02h 12/16/89 PS/2 Model P70 ??
- F8h 0Ch 00h 11/02/88 PS/2 Model 55SX (16 MHz 386SX)
- F8h 0Dh 00h ??? PS/2 Model 70 25MHz, type 3 system brd
- F8h 0Dh 00h 06/08/88 PS/2 Model 70 386 25MHz, type 3 sys brd
- F8h 0Dh 01h 02/20/89 PS/2 Model 70 386 25MHz, type 3 sys brd
- F8h 0Dh ??? 12/01/89 PS/2 Model 70 486 25Mhz, type 3 sys brd
- F8h 0Eh 00h ??? PS/1 486SX
- F8h 0Fh 00h ??? PS/1 486DX
- F8h 10h 00h ??? PS/2 Model 55-5551
- F8h 11h 00h 10/01/90 PS/2 Model 90 XP (25 MHz 486)
- F8h 12h 00h ??? PS/2 Model 95 XP
- F8h 13h 00h 10/01/90 PS/2 Model 90 XP (33 MHz 486)
- F8h 14h 00h 10/01/90 PS/2 Model 90-AK9 (25 MHz 486), 95 XP
- F8h 15h 00h ??? PS/2 Model 90 XP
- F8h 16h 00h 10/01/90 PS/2 Model 90-AKD / 95XP486 (33MHz 486)
- F8h 17h 00h ??? PS/2 Model 90 XP
- F8h 19h 05h ??? PS/2 Model 35/35LS or 40 (20 MHz 386SX)
- F8h 19h 05h 03/15/91 PS/2 Model 35 SX / 40 SX (LW-type 37)
- F8h 19h 06h 04/04/91 PS/2 Model 35 SX / 40 SX (LW-type 37)
- F8h 1Ah 00h ??? PS/2 Model 95 XP
- F8h 1Bh 00h 09/29/89 PS/2 Model 70 486 (25 Mhz 386DX)
- F8h 1Bh 00h 10/02/89 PS/2 Model 70-486 (25 MHz 486)
- F8h 1Ch 00h 02/08/90 PS/2 Model 65-121 / 65 SX (16MHz 386SX)
- F8h 1Eh 00h 02/08/90 PS/2 Model 55LS (16 MHz 386SX)
- F8h 23h 00h ??? PS/2 Model L40 SX
- F8h 23h 01h ??? PS/2 Model L40 SX (20 MHz 386SX)
- F8h 23h 02h 02/27/91 PS/2 Model L40 SX (20Mhz386SX,LW-typ37)
- F8h 25h 00h ??? PS/2 Model 57 SLC
- F8h 25h 06h ??? PS/2 Model M57 (20 MHz 386SLC)
- F8h 26h 00h ??? PS/2 Model 57 SX
- F8h 26h 01h ??? PS/2 Model 57 (20 MHz 386SX)
- F8h 26h 02h 07/03/91 PS/2 Model 57 SX (20Mhz 386SX, SCSI)
- F8h 28h 00h ??? PS/2 Model 95 XP
- F8h 29h 00h ??? PS/2 Model 90 XP
- F8h 2Ah 00h ??? PS/2 Model 95 XP (50 MHz 486)
- F8h 2Bh 00h ??? PS/2 Model 90 / 90XP486 (50 MHz 486)
- F8h 2Ch 00h ??? PS/2 Model 95 XP
- F8h 2Ch 01h ??? PS/2 Model 95 (20 MHz 486SX)
- F8h 2Dh 00h ??? PS/2 Model 90 XP (20 MHz 486SX)
- F8h 2Eh 00h ??? PS/2 Model 95 XP
- F8h 2Eh 00h ??? PS/2 Model 95 XP486 (20 Mhz 486SX)
- F8h 2Eh 01h ??? PS/2 Model 95 (20 MHz 486SX + 487SX)
- F8h 2Fh 00h ??? PS/2 Model 90 XP (20 MHz 486SX + 487SX)
- F8h 30h 00h ??? PS/1 Model 2121 (16 MHz 386SX)
- F8h 33h 00h ??? PS/2 Model 30-386
- F8h 34h 00h ??? PS/2 Model 25-386
- F8h 36h 00h ??? PS/2 Model 95 XP
- F8h 37h 00h ??? PS/2 Model 90 XP
- F8h 38h 00h ??? PS/2 Model 57
- F8h 39h 00h ??? PS/2 Model 95 XP
- F8h 3Fh 00h ??? PS/2 Model 90 XP
- F8h 40h 00h ??? PS/2 Model 95 XP
- F8h 41h 00h ??? PS/2 Model 77
- F8h 45h 00h ??? PS/2 Model 90 XP (Pentium)
- F8h 46h 00h ??? PS/2 Model 95 XP (Pentium)
- F8h 47h 00h ??? PS/2 Model 90/95 E (Pentium)
- F8h 48h 00h ??? PS/2 Model 85
- F8h 49h 00h ??? PS/ValuePoint 325T
- F8h 4Ah 00h ??? PS/ValuePoint 425SX
- F8h 4Bh 00h ??? PS/ValuePoint 433DX
- F8h 4Eh 00h ??? PS/2 Model 295
- F8h 50h 00h ??? PS/2 Model P70 (8573) (16 MHz 386)
- F8h 50h 01h 12/16/89 PS/2 Model P70 (8570-031)
- F8h 52h 00h ??? PS/2 Model P75 (33 MHz 486)
- F8h 56h 00h ??? PS/2 Model CL57 SX
- F8h 57h 00h ??? PS/2 Model 90 XP
- F8h 58h 00h ??? PS/2 Model 95 XP
- F8h 59h 00h ??? PS/2 Model 90 XP
- F8h 5Ah 00h ??? PS/2 Model 95 XP
- F8h 5Bh 00h ??? PS/2 Model 90 XP
- F8h 5Ch 00h ??? PS/2 Model 95 XP
- F8h 5Dh 00h ??? PS/2 Model N51 SLC
- F8h 5Eh 00h ??? IBM ThinkPad 700
- F8h 61h *** ??? Olivetti P500
- F8h 62h *** ??? Olivetti P800
- F8h 80h 00h ??? PS/2 Model 80 (25 MHz 386)
- F8h 80h 01h 11/21/89 PS/2 Model 80-A21 (25 Mhz 386)
- F8h 81h 00h ??? PS/2 Model 55-5502
- F8h 87h 00h ??? PS/2 Model N33SX
- F8h 88h 00h ??? PS/2 Model 55-5530T
- F8h 97h 00h ??? PS/2 Model 55 Note N23SX
- F8h 99h 00h ??? PS/2 Model N51 SX
- F8h F2h 30h ??? Reply Model 32
- F8h F6h 30h ??? Memorex Telex
- F8h FDh 00h ??? IBM Processor Complex (with VPD)
- F8h ??? ??? ??? PS/2 Model 90 (25 MHz 486SX)
- F8h ??? ??? ??? PS/2 Model 95 (25 MHz 486SX)
- F8h ??? ??? ??? PS/2 Model 90 (25 MHz 486SX + 487SX)
- F8h ??? ??? ??? PS/2 Model 95 (25 MHz 486SX + 487SX)
- E4h ??? ??? ??? Triumph Adler PC/XT
- E1h ??? ??? ??? ??? (checked for by DOS4GW.EXE)
- E1h 00h 00h ??? PS/2 Model 55-5530 Laptop
- D9h ??? ??? ??? Peacock XT
- 9Ah * * ??? Compaq XT/Compaq Plus
- 30h ??? ??? ??? Sperry PC
- 2Dh * * ??? Compaq PC/Compaq Deskpro
- ??? 56h ??? ??? Olivetti, unknown model
- ??? 74h ??? ??? Olivetti, unknown model
- Notes: BIOS dates may vary without changes to the revision code, especially
- for non-IBM machines
- * This BIOS call is not implemented in these early versions or under
- Linux's DOSEMU. Read the Model byte at F000h:FFFEh and BIOS date at
- F000h:FFF5h instead.
- ** These BIOS versions require the DASDDRVR.SYS patches.
- *** These Olivetti and Epson machines store the submodel in the byte at
- F000h:FFFDh.
- SeeAlso: #0433,#0440
-
- (Table 0440)
- Values for Dell model byte:
- 02h Dell 200
- 03h Dell 300
- 05h Dell 220
- 06h Dell 310
- 07h Dell 325
- 09h Dell 310A
- 0Ah Dell 316
- 0Bh Dell 220E
- 0Ch Dell 210
- 0Dh Dell 316SX
- 0Eh Dell 316LT
- 0Fh Dell 320LX
- 11h Dell 425E
- SeeAlso: #0433,#0439
-
- Format of Compaq product information:
- Address Size Description (Table 0441)
- F000h:FFE4h BYTE product family code (first byte)
- F000h:FFE4h BYTE Point release number
- F000h:FFE4h BYTE ROM version code
- F000h:FFE4h BYTE product family code (second byte)
- F000h:FFE8h WORD BIOS type code
- SeeAlso: #0442,#0444
-
- Format of Hewlett-Packard ROM ID at F000h:00F8h:
- Offset Size Description (Table 0442)
- 00h 2 BYTEs signature "HP" (48h 50h)
- 02h 2 BYTEs 00h 00h
- 04h BYTE secondary code revision
- 05h BYTE primary code revision
- 06h BYTE date code, year-1960 (BCD)
- 07h BYTE date code, week of year (BCD)
- SeeAlso: #0441,#0443
-
- Bitfields for Hewlett-Packard product identifier:
- Bit(s) Description (Table 0443)
- 4-0 machine code
- 0 original Vectra
- 1 ES/12
- 2 RS/20
- 3 Portable/CS
- 4 ES
- 5 CS
- 6 RS/16
- other reserved
- 7-5 CPU type
- 0 = 80286
- 1 = 8088
- 2 = 8086
- 3 = 80386
- other reserved
- SeeAlso: #0442
-
- Format of Toshiba laptop information:
- Offset Size Description (Table 0444)
- 00h 8 BYTEs ASCII product number (e.g. "T2200SX ")
- 08h 8 BYTEs ASCII version number (e.g. "V1.20 ")
- 10h 8 BYTEs ASCII signature string "TOSHIBA "
- 18h 8 BYTEs always zero???
- 20h DWORD -> built-in BIOS setup program entry point or 0000h:0000h
- Note: this record is located at F000h:E000h
- SeeAlso: #0441,#0442
-
- (Table 0445)
- Values for Toshiba product ID:
- model prodID version date product number
- FEh 29h ../..).. Toshiba T1000LE
- FEh 2Ah ../..*.. Toshiba T1000XE
- FEh 2Bh ../..+.. Toshiba T1000SE
- FEh 2Ch ../..,.. Toshiba T1000
- FEh 2Dh ../..-.. Toshiba T1200F
- FEh 2Dh V4.00 12/26-87 Toshiba T1200H
- FEh 2Eh ../..... Toshiba T1100+
- FCh 22h ../..".. Toshiba T8500
- FCh 26h 01/15&88 Toshiba T5200
- FCh 27h ../..'.. Toshiba T5100
- FCh 28h ../..(.. Toshiba T2000
- FCh 2Ah 12/26*89 Toshiba T1200XE
- FCh 2Bh ../..+.. Toshiba T1600
- FCh 2Ch ../..,.. Toshiba T3100e
- FCh 2Dh ../..-.. Toshiba T3200
- FCh 2Fh ../../.. Toshiba T3100
- FCh 34h V1.50 02/04494 Toshiba T100X
- FCh 38h ../..8.. Toshiba T2000SXe
- FCh 39h V1.20 09/16991 Toshiba T2200SX
- FCh 39h V1.40 10/01992 Toshiba T2200SX
- FCh 3Ch V1.50 01/28<91 Toshiba T2000SX
- FCh 3Dh ../..=.. Toshiba T3200SXC
- FCh 3Eh ../..>.. Toshiba T3100SX
- FCh 3Fh ../..?.. Toshiba T3200SX
- FCh 40h ../..@.. Toshiba T4500C
- FCh 41h V1.20 04/05A92 Toshiba T4500 ("T4500SXC" ???)
- FCh 45h V3.20 04/14E92 Toshiba T4400SX ("C" or "SXC" on cover)
- FCh 45h 01/13E93 Toshiba T4400SXC
- FCh 46h * ../..F.. Toshiba T6400
- FCh 46h * ../..F.. Toshiba T6400C
- FCh 5Fh V1.40 01/18_94 Toshiba T3300SL
- FCh 69h ../..i.. Toshiba T1900C ("T1900CT" ???)
- FCh 6Ah V1.30 05/19j93 Toshiba T1900 ("T1900S" ???)
- FCh 6Dh V1.10 12/25m92 Toshiba T1850C
- FCh 6Eh V1.00 08/19n92 Toshiba T1850
- FCh 6Eh V1.10 12/25n92 Toshiba T1850
- FCh 6Fh V1.00 07/17o92 Toshiba T1800
- FCh 6Fh V1.10 12/25o92 Toshiba T1800
- FCh 7Eh V1.30 06/17~93 Toshiba T4600C
- FCh 7Fh V1.40 11/10x94 Toshiba T4600
- FCh 8Ah V1.30 10/22x93 Toshiba T6600C
- FCh 91h V1.20 07/15x94 Toshiba T2400CT
- FCh 91h V5.00 07/28x95 Toshiba T2400CS/CT
- FCh 92h V5.00 07/28x95 Toshiba T3600CT
- FCh 96h * V1.40 12/08x94 Toshiba T200
- FCh 96h * V1.50 12/08x94 Toshiba T200CS (T200)
- FCh 97h ../..x.. Toshiba T4800CT
- FCh 98h * V1.10 12/22x93 Toshiba T1910
- FCh 98h * V2.40 07/12x94 Toshiba T1910/CS (T19XX)
- FCh 99h ../..x.. Toshiba T4700CS
- FCh 9Bh V2.30 01/31x94 Toshiba T4700CT
- FCh 9Bh V2.50 03/22x94 Toshiba T4700CT
- FCh 9Bh V5.00 07/28x95 Toshiba T4700CT
- FCh 9Ch V1.30 01/11x94 Toshiba T1950CT
- FCh 9Ch V2.50 07/22x94 Toshiba T1950CT (T19XX)
- FCh 9Dh * V2.40 07/12x94 Toshiba T1950/CS (T19XX)
- FCh 9Eh * V1.20 12/25x93 Toshiba T3400
- FCh 9Eh * V1.30 03/22x94 Toshiba T3400/CT
- FCh B5h ** V5.10 08/25x95 Toshiba T2110/CS (T21XX)
- FCh B5h V5.10 08/25x95 Toshiba T2130CS/CT (T21XX)
- FCh BAh V1.30 02/16x95 Toshiba T2150CDS/CDT
- FCh BAh V5.00 07/27x95 Toshiba T2150CDS/CDT (T2150)
- FCh BBh ** V1.30 01/25x95 Toshiba T2100/CS/CT
- FCh BBh ** V5.00 07/27x95 Toshiba T2100/CS/CT
- FCh BCh V1.20 12/05x94 Toshiba T2450CT
- FCh BCh V5.00 07/28x95 Toshiba T2450CT
- FCh BEh V5.00 07/28x95 Toshiba T4850CT
- FCh C0h V5.20 05/30x96 Toshiba 420CDS/CDT
- FCh C1h V5.20 03/27x96 Toshiba 100CS
- FCh C3h V5.60 07/19x96 Toshiba 710CDT / 720CDT
- FCh C6h V5.30 11/30x95 Toshiba 410CS/CDT
- FCh CAh V5.10 08/18x95 Toshiba 400CS/CDT
- FCh CAh V5.40 12/18x95 Toshiba 400CS/CDT
- FCh CBh V5.10 09/01x95 Toshiba 610CT
- FCh CCh V5.50 06/13x96 Toshiba 700CS/CT
- FCh CFh V5.00 08/07x95 Toshiba T4900CT
- FCh DCh V5.10 06/17x96 Toshiba 650CT
- FCh DCh V5.10 05/10x96 Toshiba 110CS/CT
- FCh DDh V5.10 05/10x96 Toshiba 110CS/CT
- FCh DFh V5.20 05/27x96 Toshiba 500CS/CDT
- FCh ??? V5.??? ../..x.. Toshiba 620CT
- FCh ??? V5.??? ../..x.. Toshiba 660CDT
- FCh ??? V5.30 11/22/96 Toshiba 730CDT
- FCh ??? V6.00 09/20/96 Toshiba 200CDS/CDT
- FCh ??? V6.20 11/14/96 Toshiba 430CDS/CDT
- FCh ??? V6.40 12/05/96 Toshiba 510CS/CDT
- Notes: the 8-bit ASCII graphics character in the "date" column above
- has been substituted by "x" if larger than 80h
- BIOS version numbers and dates may vary, esp. due to harddisk and
- (flash) BIOS upgrades; all BIOS versions 5.xx are flash updates
- for Windows95, the product number may indicate the series only
- (T21XX) or does no longer contain the exact type suffix (CS/CT)
- the most recent versions of the BIOS have stopped including the
- product ID code in the BIOS date
- [*] These models have monochrome and color versions which can be
- distinguished with INT 42/AX=7503h (WD90C24 chipset)
- [**] These models have monochrome and color versions which can be
- distinguished with INT 10/AX=5F50h (CT655xx chipset)
- models not found here like T21x5 are variants differing only in
- bundled software
- SeeAlso: #0439
- --------B-15C1-------------------------------
- INT 15 - SYSTEM - RETURN EXTENDED-BIOS DATA-AREA SEGMENT ADDRESS (PS)
- AH = C1h
- Return: CF set on error
- CF clear if successful
- ES = segment of data area (see #M001,#M004,#M005)
- SeeAlso: AH=04h"ABIOS",MEM 0040h:000Eh"DATA"
- --------M-15C200-----------------------------
- INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - ENABLE/DISABLE
- AX = C200h
- BH = new state
- 00h disabled
- 01h enabled
- Return: CF set on error
- AH = status (see #0446)
- Note: IBM classifies this function as required
- SeeAlso: AX=C201h,AX=C207h,AX=C208h
-
- (Table 0446)
- Values for pointing device function status:
- 00h successful
- 01h invalid function
- 02h invalid input
- 03h interface error
- 04h need to resend
- 05h no device handler installed
- --------M-15C201-----------------------------
- INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - RESET
- AX = C201h
- Return: CF set on error
- AH = status (see #0446)
- CF clear if successful
- BH = device ID
- BL = value returned by attached device after reset
- AAh if device is a mouse
- Notes: after successful completion of this call, the pointing device is set
- as follows: disabled, sample rate 100 Hz, resolution 4 counts/mm,
- scaling 1:1, unchanged data package size
- IBM classifies this function as required
- SeeAlso: INT 33/AX=0000h,AX=C200h,AX=C207h
- --------M-15C202-----------------------------
- INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - SET SAMPLING RATE
- AX = C202h
- BH = sampling rate
- 00h 10/second
- 01h 20/second
- 02h 40/second
- 03h 60/second
- 04h 80/second
- 05h 100/second
- 06h 200/second
- Return: CF set on error
- AH = status (see #0446)
- SeeAlso: INT 33/AX=001Ch
- --------M-15C203-----------------------------
- INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - SET RESOLUTION
- AX = C203h
- BH = resolution (see #0447)
- Return: CF set on error
- AH = status (see #0446)
-
- (Table 0447)
- Values for pointing device resolution:
- 00h one count per mm
- 01h two counts per mm
- 02h four counts per mm
- 03h eight counts per mm
- --------M-15C204-----------------------------
- INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - GET TYPE
- AX = C204h
- Return: CF set on error
- AH = status (see #0446)
- CF clear if successful
- BH = device ID
- --------M-15C205-----------------------------
- INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - INITIALIZE
- AX = C205h
- BH = data package size (1 - 8 bytes)
- Return: CF set on error
- AH = status (see #0446)
- Note: the pointing device is set as follows: disabled, 100 Hz sample rate,
- resolution 4 counts/mm, scaling 1:1
- SeeAlso: AX=C201h
- --------M-15C206-----------------------------
- INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - EXTENDED COMMANDS
- AX = C206h
- BH = subfunction
- 00h return device status
- Return: BL = pointing device status (see #0448)
- CL = resolution (see #0447)
- DL = sample rate, reports per second
- 01h set scaling at 1:1
- 02h set scaling at 2:1
- Return: CF set on error
- AH = status (see #0446)
-
- Bitfields for pointing device status:
- Bit(s) Description (Table 0448)
- 0 right button pressed
- 1 reserved
- 2 left button pressed
- 3 reserved
- 4 0 if 1:1 scaling, 1 if 2:1 scaling
- 5 device enabled
- 6 0 if stream mode, 1 if remote mode
- 7 reserved
- --------M-15C207-----------------------------
- INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - SET DEVICE HANDLER ADDR
- AX = C207h
- ES:BX -> FAR user device handler or 0000h:0000h to cancel
- Return: CF set on error
- AH = status (see #0446)
- Note: when the subroutine is called, it is passed the following values on
- the stack; the handler should return with a FAR return without
- popping the stack:
- WORD 1: status (see #0449)
- WORD 2: X data (high byte = 00h)
- WORD 3: Y data (high byte = 00h)
- WORD 4: 0000h
- SeeAlso: INT 33/AX=000Ch
-
- Bitfields for pointing device status:
- Bit(s) Description (Table 0449)
- 15-8 reserved (0)
- 7 Y data overflowed
- 6 X data overflowed
- 5 Y data is negative
- 4 X data is negative
- 3 reserved (1)
- 2 reserved (0)
- 1 right button pressed
- 0 left button pressed
- --------M-15C208-----------------------------
- INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE - WRITE TO POINTER PORT
- AX = C208h
- BL = byte to be sent to the pointing device
- Note: IBM classifies this function as optional
- SeeAlso: AX=C200h,AX=C209h
- --------M-15C209-----------------------------
- INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE - READ FROM POINTER PORT
- AX = C209h
- Return: BL = first byte read from pointing device
- CL = second byte read
- DL = third byte read
- Note: IBM classifies this function as optional
- SeeAlso: AX=C200h,AX=C208h
- --------M-15C2-------------------------------
- INT 15 - IBM SurePath BIOS - Officially "Private" Function
- AH = C2h
- AL = 10h-23h
- SeeAlso: AH=07h"IBM",AH=3Eh"IBM"
- --------B-15C3------------------------------
- INT 15 - SYSTEM - ENABLE/DISABLE WATCHDOG TIMEOUT (PS50+)
- AH = C3h
- AL = function
- 00h disable PS/2 watchdog timer
- 01h enable PS/2 watchdog timer
- BX = timer counter (0001h-00FFh)
- 02h disable Gearbox system
- 03h enable Gearbox system
- Return: CF set on error
- CF clear if successful
- Note: the watchdog timer generates an NMI
- SeeAlso: INT 21/AH=2Bh/CX=6269h"WDTSR"
- --------B-15C4-------------------------------
- INT 15 - SYSTEM - PROGRAMMABLE OPTION SELECT (PS50+)
- AH = C4h
- AL = subfunction
- 00h return base POS register address
- 01h enable selected slot for setup
- BL = slot number (1 to 8)
- 02h disable setup for all slots (enable adapter)
- Return: CF set on error
- DX = base POS register address (if subfunction 00h)
- SeeAlso: AH=C6h
- --------B-15C5-------------------------------
- INT 15 UC - OS HOOK - ROM BIOS TRACING CALLOUT (PS30/286,PS50Z,PS95)
- AH = C5h
- AL = interrupt being invoked
- 01h INT 19
- 02h INT 14
- 03h INT 16
- 04h INT 40 (floppy INT 13)
- 05h INT 17
- 06h INT 10
- 07h INT 12
- 08h INT 11
- 09h INT 1A
- Return: all registers except AX must be preserved
- Notes: called as the very first action of the indicated ROM BIOS interrupt
- handlers on the PS/2 Models 30/286, 50Z, and 95
- default handler does nothing and returns CF clear for the above
- subfunctions, CF set and AH=86h for all other subfunctions
- value of AX passed to the original interrupt handler is pushed on
- stack immediately prior to call
- --------B-15C6-------------------------------
- INT 15 U - later PS/2 models - GET POS DATA
- AH = C6h
- ???
- Return: ???
- Notes: this function is referenced by name and number in some IBM BIOS manuals
- IBM reports that "there are a number of problems with this call" and
- does not recommend its use.
- SeeAlso: AH=C4h
- --------B-15C7-------------------------------
- INT 15 - SYSTEM - later PS/2s - RETURN MEMORY-MAP INFORMATION
- AH = C7h
- DS:SI -> user supplied memory map table (see #0450)
- Notes: call AH=C0h and examine bit 4 of feature byte 2 to check if this
- function is supported
- IBM classifies this function as optional
- Return: CF set on error, clear if successful
- SeeAlso: AH=C0h,AH=C9h,AH=D1h,AX=E820h
-
- Format of memory-map table structure:
- Offset Size Description (Table 0450)
- 00h WORD length of table (excluding this word)
- 02h DWORD local memory between 1M and 16M, in 1K blocks
- 06h DWORD local memory between 16M and 4G, in 1K blocks
- 0Ah DWORD system memory between 1M and 16M, in 1K blocks
- 0Eh DWORD system memory between 16M and 4G, in 1K blocks
- 12h DWORD cacheable memory between 1M and 16M, in 1K blocks
- 16h DWORD cacheable memory between 16M and 4G, in 1K blocks
- 1Ah DWORD 1K blocks before start of non-system memory between 1M and 16M
- 1Eh DWORD 1K blocks before start of non-system memory between 16M and 4G
- 22h WORD start segment of largest free block from C0000h-DFFFFh
- 24h WORD size of largest free block
- 26h DWORD reserved
- --------B-15C8-------------------------------
- INT 15 - SYSTEM - ENABLE/DISABLE PROCESSOR FUNCTIONS
- AH = C8h
- AL = function
- 00h disable L1 cache
- 01h enable L1 cache
- ---models 90 and 95 only---
- 02h disable L2 cache
- 03h enable L2 cache
- 04h disable both caches
- 05h enable both caches
- 06h return status of both caches
- 07h-FFh Reserved
- Return: CF set on error
- CF clear if successful
- AH = status (see #0451)
- For subfunction 06h only:
- BL = status of L1 cache
- 00h enabled
- 01h disabled or not installed
- 02h disabled due to test error (can not be enabled)
- BH = status of L2 cache (same codes as BL)
- Notes: supported by at least PS/2 70, 70/486, 80-A21, 90, 95
- call AH=C0h and examine bit 3 of feature byte 2 to check if this
- function is supported.
- on a 486 system, any external caches must be disabled when the
- on-chip cache (L1) is disabled.
- SeeAlso: AH=C0h
-
- (Table 0451)
- Values for status:
- 00h operation successful
- 01h function choice (in AL) is invalid
- 02h NVRAM data is invalid
- 03h cache test error
- 04h (90 and 95 only) cannot perform operation requested due to state of
- other cache (also see note above)
- 05h no L2 cache is present
- 07h invalid input values
- 09h CPU in protected mode
- --------B-15C9-------------------------------
- INT 15 - newer PS/2; various BIOSes - GET CPU TYPE AND MASK REVISION
- AH = C9h
- AL = 10h (may be required on some non-PS BIOSes)
- Return: CF clear if successful
- AH = 00h
- CH = CPU type (see #0452)
- CL = mask revision (stepping level) (see #0453)
- CF set on error
- AH = status (80h,86h = function not supported)
- Notes: the BIOS must save DX at startup in order to be able to support this
- call; PS/2 Models 56, 57, 90, and 95 are known to support it
- the PS/2 BIOS merely reads CMOS locations 190h (type) and 191h (rev)
- IBM classifies this function as optional
- SeeAlso: AX=D100h,AX=DA92h,MEM 0040h:00BCh
-
- (Table 0452)
- Values for CPU type:
- 03h 80386DX or clone
- 04h 80486
- 05h Pentium
- 23h 80386SX or clone
- 33h Intel i376
- 43h 80386SL or clone
- A3h IBM 386SLC
- A4h IBM 486SLC
-
- (Table 0453)
- Values for stepping level:
- ---i376 (type code 33h)---
- 05h A0
- 08h B
- ---80386/80386DX (type code 03h)---
- 03h Intel B1 to B10, Am386DX/DXL step A
- 05h Intel D0
- 08h Intel D1/D2/E1, Am386DX/DXL step B
- ---80386SL (type code 43h)---
- 05h A
- 1xh B
- ---80386SX (type code 23h)---
- 04h Intel A0
- 05h Intel B, Am386SX/SXL step A1
- 08h Intel C/D1, Am386SX/SXL step B
- 09h Intel 386CX/386EX/386SXstatic step A
- ---80486DX (type code 04h)---
- 00h Intel A0/A1
- 01h Intel B2 to B6
- 02h Intel C0
- 03h Intel C1
- 04h Intel D0
- 10h Intel cA2/cA3, Cx486SLC step A
- 11h Intel cB0/cB1
- ---486DX2 (type code 04h)---
- 02h Am486DX2 (unknown stepping)
- 32h Intel DX2/Overdrive steps A0 to A2
- 33h Intel DX2/Overdrive step B1
- ---486SX (type code 04h)---
- 20h Intel A0
- 22h Intel B0
- 27h Intel cA0
- 28h Intel cB0
- ---486SL (type code 04h)---
- 40h Intel A
- ---IntelSX2 (type code 04h)---
- 5xh Intel A
- ---IntelDX4 (type code 04h)---
- 8xh Intel A
- ---487SX (type code 04h)---
- 20h Intel A0
- 21h Intel B0
- ---Pentium (type code 05h)---
- 0xh Intel P5 steps Ax (1993)
- 1xh Intel P5 steps Bx (1994)
- 2xh Intel P54C step A
- ---RapidCAD (type code 03h)---
- 40h A
- --------B-15CA-------------------------------
- INT 15 U - PS/2 Model 95 - READ/WRITE CMOS MEMORY
- AH = CAh
- AL = function
- 00h read CMOS
- Return: CL = value of CMOS location
- 01h write CMOS
- CL = new value for CMOS location
- BL = CMOS location (0Eh-3Fh)
- Return: CF clear if successful
- AH = 00h
- CF set on error
- AH = error code (see #0454)
- Note: writes do not update the CMOS checksum
-
- (Table 0454)
- Values for CMOS read/write error code:
- 01h CMOS lost power or has invalid checksum
- 03h specified location out of range (too high)
- 04h specified location out of range (too low)
- 80h unsupported function (PC)
- 86h unsupported function (XT)
- --------B-15CB-------------------------------
- INT 15 U - PS/2 Model 95 - RESERVED
- AH = CBh
- ???
- Return: ???
- --------B-15CC-------------------------------
- INT 15 U - PS/2 Model 95 - RESERVED
- AH = CCh
- ???
- Return: ???
- --------V-15CCCC-----------------------------
- INT 15 U - Toshiba laptops - VCHAD.EXE - INSTALLATION CHECK
- AX = CCCCh
- Return: AX = ABCDh if installed
- Note: supported by Toshiba VGA change display utility VCHAD.EXE ver 2.90+
- older versions have the string "VCHAD" 2 bytes after the address of
- the INT 15 handler which is hooked by all versions for the SysReq key
- SeeAlso: AH=85h
- --------B-15CD-------------------------------
- INT 15 U - PS/2 Model 95 - RESERVED
- AH = CDh
- ???
- Return: ???
- --------B-15CE--BL00-------------------------
- INT 15 - later PS/2s - ALLOCATE DMA ARBITRATION LEVEL
- AH = CEh
- BL = 00h-0Eh arbitration level to be allocated
- 0Fh-FFh reserved
- AL = option byte
- bit 7-1: reserved (0)
- bit 0: 0 = need DMA channel for arbitration level requested
- 1 = no channel required for arbitration level
- Return: CF set on error
- AH = status (80h,86h = function not supported)
- CF clear on success
- AL = channel number
- 00h-07h channel number allocated for the arbiration level
- 08h-FEh reserved
- FFh no channel requested for arbitration level
- AH = status (see #0455)
- Notes: arbitration level 00h has the highest priority, 0Eh the lowest
- to perform a DMA transfer operation, be sure to call this function
- first, and call AH=CFh afterward. Failure to use this function
- can cause unpredictable results.
- SeeAlso: AH=CFh
-
- (Table 0455)
- Values for DMA arbitration status:
- 00h success
- 01h arbitration level not available
- 02h channel not available
- 03h invalid arbitration level passed
- --------B-15CF-------------------------------
- INT 15 - later PS/2s - DEALLOCATE DMA ARBITRATION LEVEL
- AH = CFh
- BL = arbitration level to be deallocated (see AH=CEh)
- Return: CF set on error
- AH = status (80h,86h = function not supported)
- CF clear on success
- AH = status
- 00h success
- 04h arbitration level not allocated
- SeeAlso: AH=CEh
- --------B-15D0-------------------------------
- INT 15 - later PS/2s - RESERVED
- AH = D0h
- ???
- Return: ???
- ----------15D042BL00-------------------------
- INT 15 R - Intel Pentium Pro BIOS UPDATE - INSTALLATION CHECK
- AX = D042h
- BL = 00h
- Return: CF clear if successful
- CF set on error
- AH = status
- 00h successful
- EBX:ECX = signature "INTELPEP"
- EDX = BIOS update loader version
- SI = number of 2K update blocks which can be recorded in NVRAM
- 86h not implemented
- AL = OEM error (if AH is not 00h or 86h, otherwise undefined)
- 00h successful
- Program: the Pentium Pro BIOS update allows the system BIOS or other software
- to install a microcode patch into the Pentium Pro processor
- Notes: this API must be called from actual real mode, not V86 mode
- at least 32K stack space must be available when this function is called
- SeeAlso: AX=D042h/BL=01h,AX=D042h/BL=02h,AX=D042h/BL=03h
- SeeAlso: @xxxxh:xxxxh"Intel BIOS Upgrade",MSR 00000079h
- ----------15D042BL01-------------------------
- INT 15 R - Intel Pentium Pro BIOS UPDATE - WRITE BIOS UPDATE AREA
- AX = D042h
- BL = 01h
- ES:DI -> microcode update block (see #0457)
- CX,DX,SI = segments of three 64K scratchpad areas for BIOS use
- Return: CF clear if successful
- CF set on error
- AH = status (see #0456)
- AL = OEM error (if AH is not 00h or 86h, otherwise undefined)
- 00h successful
- Notes: a microcode update may also be initiated by a WRMSR instruction
- with ECX=0079h, EDX=00000000h, and EAX=linear address of update
- block (see #0457)
- at least 32K stack space must be available when this function is called
- SeeAlso: AX=D042h/BL=00h,AX=D042h/BL=02h,AX=D042h/BL=03h,MSR 00000079h
-
- (Table 0456)
- Values for Pentium Pro BIOS update status:
- 00h successful
- 86h not implemented
- 90h unable to erase NVRAM device
- 91h unable to write to NVRAM device
- 92h unable to read storage
- 93h NVRAM is full
- 94h specified processor stepping is not present in system
- 95h invalid header or loader version
- 96h wrong checksum in header
- 97h processor rejected the update
- 98h the same or a more recent update is already stored
- 99h update block number was out of range
-
- Format of Pentium Pro microcode update block:
- Offset Size Description (Table 0457)
- 00h DWORD update header version number (currently 00000001h)
- FFFFFFFFh = unused block
- 04h DWORD revision number of this microcode update
- 08h DWORD update creation date, as BCD mmddyyyy (month,day,year)
- 0Ch DWORD family/model/stepping of processor to which update applied
- (same value as returned by CPUID instruction)
- 10h DWORD checksum (used to force sum of all 512 DWORDs of the update
- block to 00000000h)
- 14h DWORD revision number of loader needed to install update
- (currently 00000001h)
- 18h 24 BYTEs reserved for future expansion
- 30h 2000 BYTEs encrypted microcode data
- SeeAlso: MSR 00000079h,OPCODE "CPUID"
- ----------15D042BL02-------------------------
- INT 15 R - Intel Pentium Pro BIOS UPDATE - BIOS UPDATE CONTROL
- AX = D042h
- BL = 02h
- BH = function
- 01h enable update loading at initialization time
- 02h check whether update loading is enabled
- CX,DX,SI = segments of three 64K scratchpad areas for BIOS use
- Return: CF clear if successful
- CF set on error
- AH = status (see #0456)
- 00h successful
- BL = enabled/disabled flag
- 86h not implemented
- AL = OEM error (if AH is not 00h or 86h, otherwise undefined)
- 00h successful
- Notes: this API must be called from actual real mode, not V86 mode
- at least 32K stack space must be available when this function is called
- there is no call to disable update loading due to security risks; the
- BIOS setup can disable loading
- SeeAlso: AX=D042h/BL=00h,AX=D042h/BL=02h,AX=D042h/BL=03h
- ----------15D042BL03-------------------------
- INT 15 R - Intel Pentium Pro BIOS UPDATE - READ BIOS UPDATE AREA
- AX = D042h
- BL = 03h
- ES:DI -> buffer for microcode update block (see #0457)
- ECX = two real-mode 64K scratchpad segments (upper and lower words)
- DX = segment of 64K scratchpad area for BIOS use
- SI = zero-based index number of update block to retrieve
- Return: CF clear if successful
- CF set on error
- AH = status
- 00h successful
- ES:DI buffer filled with 2048-byte update block
- 86h not implemented
- AL = OEM error (if AH is not 00h or 86h, otherwise undefined)
- 00h successful
- Program: the Pentium Pro BIOS update allows the system BIOS or other software
- to install a microcode patch into the Pentium Pro processor
- Notes: this API must be called from actual real mode, not V86 mode
- at least 32K stack space must be available when this function is called
- SeeAlso: AX=D042h/BL=00h,AX=D042h/BL=01h,AX=D042h/BL=03h
- --------B-15D100DX0000-----------------------
- INT 15 - later PS/2s - GET NUMBER OF DEVICE DESCRIPTOR TABLE (DDT) ENTRIES
- AX = D100h
- DX = 0000h (reserved, must set to 0)
- Return: BL = size of one DDT entry, in bytes
- CX = number of DDT entries
- AH = return code (see #0458)
- CF set on error
- CF clear on success
- SeeAlso: AH=C0h,AH=C7h,AH=C9h,AX=D101h,AX=D102h,AX=D103h,AX=D104h
-
- (Table 0458)
- Values for return code:
- 00h success
- 01h requested DDT entry not found
- 02h DDT data not valid
- 86h function not supported
- --------B-15D101-----------------------------
- INT 15 - later PS/2s - RETURN DEVICE DESCRIPTOR TABLE (DDT) ENTRY BY NUMBER
- AX = D101h
- BX = number of requested entry (starting with 1)
- DX = 0000h (reserved, must be set to 0)
- ES:DI -> buffer to contain DDT entry (see #0459)
- Return: AH = return code (see #0458)
- CF set on error
- CF clear on success
- ES:DI buffer filled with DDT entry
- SeeAlso: AH=C0h,AH=C7h,AH=C9h,AX=D100h,AX=D102h,AX=D104h
-
- Format of Device Descriptor Table (DDT):
- Offset Size Description (Table 0459)
- 00h BYTE bits 7-4: reserved (set to 0)
- bits 3-0: slot of device (0 = system board)
- 01h BYTE bits 7-4: second interrupt for this device (0 = none)
- bits 3-0: first interrupt for this device (0 = none)
- 02h BYTE bits 7-4: second arbitration level for this device
- bits 3-0: first arbitration level for this device
- 03h WORD DDT indicators (see #0460)
- 05h BYTE reserved (0)
- 06h WORD device ID (0 = none)
- 08h WORD starting address of first I/O block (0 = none)
- 0Ah WORD starting address of second I/O block (0 = none)
- OCh WORD starting address of third I/O block (0 = none)
- OEh DWORD start of first non-system memory block (0 = none)
- 12h WORD size of first non-system memory block (in kilobytes)
- 14h DWORD start of second non-system memory block (0 = none)
- 18h WORD size of second non-system memory block (in kilobytes)
- 1Ah BYTE implementation identifier of the device
- 1Bh BYTE implementation revision level of the device
- Note: I/O block addresses and non-system memory addresses are listed in
- ascending order in each DDT entry.
-
- Bitfields for DDT indicators:
- Bit(s) Description (Table 0460)
- 15 reserved (0)
- 14 second arbitration level exists
- 13 first arbitration level exists
- 12 serial interface is RS-422
- 11 not address limited
- 10 DMA channel used
- 9 second arbitration level can be shared
- 8 first arbitration level can be shared
- 7-0 reserved (0)
- --------B-15D102-----------------------------
- INT 15 - later PS/2s - RETURN DEVICE DESCRIPTOR TABLE (DDT) ENTRY BY I/O ADDRSS
- AX = D102h
- BX = entry number at which to start searching
- CX = requested I/O port address
- DX = 0000h (reserved, must be set to 0)
- ES:DI -> buffer to contain DDT entry (see #0459)
- Return: AH = return code (see #0458)
- BX = DDT entry number where I/O port was found, or total entries
- plus 1 if port was not found.
- CF set on error
- CF clear on success
- ES:DI buffer filled with DDT entry
- Desc: the DDT is searched from the specified entry for the I/O port in CX,
- and the first entry in which it is found is returned
- SeeAlso: AH=C0h,AH=C7h,AH=C9h,AX=D100h,AX=D101h,AX=D103h,AX=D104h
- --------B-15D103DX0000-----------------------
- INT 15 - later PS/2s - RETURN ENTIRE DDT
- AX = D103h
- DX = 0000h (reserved, must be set to 0)
- ES:DI -> buffer to contain DDT entry (see #0459)
- Return: AH = return code (see #0458)
- CF set on error
- CF clear on success
- ES:DI buffer filled with DDT entry
- SeeAlso: AH=C0h,AH=C7h,AH=C9h,AX=D100h,AX=D104h
- --------B-15D104-----------------------------
- INT 15 - later PS/2s - RETURN DEVICE DESCRIPTOR TABLE (DDT) ENTRY BY DEVICE ID
- AX = D104h
- BX = entry number at which to start searching
- CX = requested device ID
- DX = 0000h (reserved, must be set to 0)
- ES:DI -> buffer to contain DDT entry (see #0459)
- Return: AH = return code (see #0458)
- BX = DDT entry number where device ID was found, or total entries
- plus 1 if port was not found.
- CF set on error
- CF clear on success
- ES:DI buffer filled with DDT entry
- Desc: the DDT is searched from the specified entry for the device ID in CX,
- and the first entry in which it is found is returned.
- SeeAlso: AH=C0h,AH=C7h,AH=C9h,AX=D100h,AX=D101h,AX=D103h
- --------B-15D2-------------------------------
- INT 15 - later PS/2s - RESERVED
- AH = D2h
- ???
- Return: ???
- --------B-15D3-------------------------------
- INT 15 - later PS/2s - RESERVED
- AH = D3h
- ???
- Return: ???
- --------B-15D4-------------------------------
- INT 15 - later PS/2s - GET PHYSICAL FIXED DISK DRIVE NUMBER (SELECTABLE BOOT)
- AH = D4h
- DL = logical fixed disk drive number
- Return: AH = return code (see #0461)
- CF set on error
- CF clear on success
- AL = physical fixed disk drive number
-
- (Table 0461)
- Values for return code:
- 00h success
- 01h specified logical drive number is invalid
- 80h function not supported (on PCjr and PC)
- 86h function not supported
- --------B-15D5-------------------------------
- INT 15 - later PS/2s - RESERVED
- AH = D5h
- ???
- Return: ???
- --------B-15D600BL00-------------------------
- INT 15 - later PS/2s - READ BOOT DEVICE ID
- AX = D600h
- BL = 00h
- DX = device ID
- Return: CF clear if successful
- AH = 00h
- CF set on error
- AH = status (86h for function not supported)
- SeeAlso: AX=D600h/BL=01h,AX=D601h/BL=00h,AX=D602h
- --------B-15D600BL01-------------------------
- INT 15 - later PS/2s - WRITE BOOT DEVICE ID
- AX = D600h
- BL = 01h
- DX = device ID
- Return: CF clear on success
- AH = 00h
- CF set on error
- AH = status (86h for function not supported)
- SeeAlso: AX=D600h/BL=00h,AX=D601h/BL=01h
- --------B-15D601BL00-------------------------
- INT 15 - later PS/2s - READ BOOT DEVICE KEY
- AX = D601h
- BL = 00h
- DX = device ID
- Return: CF clear on success
- AH = 00h
- CF set on error
- AH = status (86h for function not supported)
- SeeAlso: AX=D600h/BL=00h,AX=D601h/BL=01h,AX=D602h
- --------B-15D601BL01-------------------------
- INT 15 - later PS/2s - WRITE BOOT DEVICE KEY
- AX = D601h
- BL = 01h
- DX = device ID
- Return: CF clear on success
- AH = 00h
- CF set on error
- AH = status (86h for function not supported)
- SeeAlso: AX=D600h/BL=01h,AX=D601h/BL=00h
- --------B-15D602-----------------------------
- INT 15 - later PS/2s - QUERY BOOT REFERENCE PARTITION
- AX = D602h
- Return: CF clear on success
- AH = 00h
- AL = status of reference-partition boot request
- 00h boot not requested
- 01h boot requested
- CF set on error
- AH = status (86h for function not supported)
- SeeAlso: AX=D601h/BL=00h
- --------X-15D800-----------------------------
- INT 15 - EISA SYSTEM ROM - READ SLOT CONFIGURATION INFORMATION
- AX = D800h
- CL = slot number (including embedded and virtual)
- Return: CF clear if successful
- AH = 00h
- CF set on error
- AH = error code (80h,82h,83h,86h,87h)(see #0463)
- AL = bit flags (see #0462)
- BH = major revision level of configuration utility
- BL = minor revision level of configuration utility
- CX = checksum of configuration file
- DH = number of device functions
- DL = combined function information byte (see #0464)
- SI:DI = 4-byte compressed ID (DI = bytes 0&1, SI = bytes 2&3)
- Note: call with AL=80h if using 32-bit CS addressing mode instead of 16-bit
- SeeAlso: AX=D801h,AX=D804h
-
- Bitfields for EISA AL bit flags:
- Bit(s) Description (Table 0462)
- 7 set if duplicate IDs
- 6 set if product ID readable
- 4,5 slot type (00=expansion, 01=embedded, 10=virtual device)
- 0-3 duplicate ID number if bit 7 set
- SeeAlso: #0464
-
- (Table 0463)
- Values for EISA error code:
- 80h invalid slot number
- 81h invalid function number
- 82h EISA CMOS corrupt
- 83h empty slot
- 84h error clearing CMOS
- 85h EISA CMOS is full
- 86h invalid BIOS-FW function call
- 87h invalid system configuration
- 88h config utility version not supported
-
- Bitfields for EISA combined function information byte:
- Bit(s) Description (Table 0464)
- 7 reserved
- 6 slot has free-form data entries
- 5 slot has port initialization entries
- 4 slot has port-range entries
- 3 slot has DMA entries
- 2 slot has IRQ entries
- 1 slot has memory entries
- 0 slot has function type entries
- SeeAlso: #0462
- --------X-15D801-----------------------------
- INT 15 - EISA SYSTEM ROM - READ FUNCTION CONFIGURATION INFORMATION
- AX = D801h
- CH = function number to read
- CL = slot number (including embedded and virtual)
- DS:SI -> 320-byte buffer for standard configuration data block
- Return: CF clear if successful
- AH = 00h
- DS:SI buffer filled
- CF set on error
- AH = error code (80h-83h,86h,87h) (see #0463)
- BX destroyed
- Note: call with AL=81h if using 32-bit CS addressing mode instead of 16-bit
- --------X-15D802-----------------------------
- INT 15 - EISA SYSTEM ROM - CLEAR NONVOLATILE MEMORY (EISA CMOS)
- AX = D802h
- BH = EISA config utility major revision level
- BL = EISA config utility minor revision level
- Return: CF clear if successful
- AH = 00h
- CF set on error
- AH = error code (84h,86h,88h) (see #0463)
- Note: call with AL=82h if using 32-bit CS addressing mode instead of 16-bit
- SeeAlso: AX=D803h
- --------X-15D803-----------------------------
- INT 15 - EISA SYSTEM ROM - WRITE NONVOLATILE MEMORY
- AX = D803h
- CX = length of data structure (0000h = empty slot)
- includes two bytes for config file checksum
- DS:SI -> configuration data
- Return: CF clear if successful
- AH = 00h
- CF set on error
- AH = error code (84h-86h) (see #0463)
- Note: call with AL=83h if using 32-bit CS addressing mode instead of 16-bit
- SeeAlso: AX=D802h
- --------X-15D804-----------------------------
- INT 15 - EISA SYSTEM ROM - READ PHYSICAL SLOT
- AX = D804h
- CL = slot number (including embedded and virtual)
- Return: CF clear if successful
- AH = 00h
- CF set on error
- AH = error code (80h,83h,86h) (see #0463)
- SI:DI = 4-byte compressed ID (DI = bytes 0&1, SI = bytes 2&3)
- Note: call with AL=84h if using 32-bit CS addressing mode instead of 16-bit
- SeeAlso: AX=D800h
- --------b-15D820-----------------------------
- INT 15 - Compaq LTE Lite - GET ???
- AX = D820h
- DS:SI -> 17-byte buffer for ???
- Return: DS:SI buffer filled (first byte is length of remaining data, unless
- it is greater than 10h, in which case the second byte is 00h and no
- other data is returned)
- Note: this function is also supported by Compaq's EISA System ROM, Contura
- 486/486c/486cx and recent DESKPRO/i ROMs
- SeeAlso: AX=D821h
- --------b-15D821-----------------------------
- INT 15 - Compaq LTE Lite - SET ???
- AX = D821h
- DS:SI -> counted string (should not be more than 16 bytes)
- Return: AH = 00h
- Note: this function is also supported by Compaq's EISA System ROM, Contura
- 486/486c/486cx and recent DESKPRO/i ROMs
- SeeAlso: AX=D820h
- --------b-15D822BL00-------------------------
- INT 15 - Compaq EISA System ROM 04/08/93 - GET ???
- AX = D822h
- BL = 00h
- CX = size of buffer or 0000h to retrieve required buffer size
- DS:SI -> buffer for ??? (if CX nonzero)
- Return: CF clear if successful
- AH = 00h
- DH = 08h
- CX = required buffer size to retrieve all data (if CX=0 on entry)
- DS:SI buffer filled (if CX nonzero on entry)
- CF set on error (BL nonzero)
- AH = 86h
- --------b-15D823-----------------------------
- INT 15 - Compaq EISA System ROM 04/08/93 - ???
- AX = D823h
- BL = subfunction??? (00h or 80h)
- BH = ???
- DS:SI -> buffer for ??? (see #0465)
- Return: CF clear if successful
- AH = 00h
- DH = 08h
- DL = ???
- CF set on error
- AH = error code
- 86h BL neither 00h nor 80h
- 87h ???
-
- Format of Compaq EISA buffer:
- Offset Size Description (Table 0465)
- 00h BYTE ???
- 01h WORD ???
- 03h BYTE ???
- 04h WORD ???
- 06h WORD ???
- ???
- ----------15D824-----------------------------
- INT 15 - Compaq EISA System ROM 04/08/93 - ???
- AX = D824h
- CX = ???
- DS:SI -> ASCIZ string containing ???
- Return: CF clear if successful
- AH = 00h
- CX = ???
- CF set on error
- AH = error code
- 87h ??? failed
- 88h ???
- Note: these functions are only available if ??? from keyboard controller
- command C0h
- ----------15D825-----------------------------
- INT 15 - Compaq EISA System ROM 04/08/93 - ???
- AX = D825h
- CX = ???
- SI = ???
- DI = ???
- ???
- Return: CF clear if successful
- AH = 00h
- CX = ???
- CF set on error
- AH = error code
- 87h ??? failed
- 88h ???
- CX = ???
- Note: these functions are only available if ??? from keyboard controller
- command C0h
- ----------15D826-----------------------------
- INT 15 - Compaq EISA System ROM 04/08/93 - ???
- AX = D826h
- BX = ???
- CX = size of buffer in bytes
- DS:SI -> buffer for ???
- ???
- Return: CF clear if successful
- AH = 00h
- CX = ???
- CF set on error
- AH = error code
- 87h ??? failed
- 88h ???
- Note: these functions are only available if ??? from keyboard controller
- command C0h
- --------X-15D8-------------------------------
- INT 15 - EISA SYSTEM ROM - 32-bit CS ADDRESSING MODE CALLS
- AH = D8h
- AL = 80h to 84h
- other registers as appropriate for AL=00h to 04h
- Return: as appropriate for AL=00h to 04h
- Note: these functions are identical to AX=D800h to D804h, except that they
- should be called when using 32-bit CS addressing mode (pointers use
- ESI rather than SI as offset) instead of 16-bit addressing mode
- SeeAlso: AX=D800h,AX=D801h,AX=D802h,AX=D803h,AX=D804h
- --------b-15D8-------------------------------
- INT 15 - Compaq EISA System ROM 04/08/93 - 32-bit CS ADDRESSING MODE CALLS
- AH = D8h
- AL = A0h to A6h
- other registers as appropriate for AL=20h to 26h
- Return: as appropriate for AL=20h to 26h
- Note: these functions are identical to AX=D820h to D826h, except that they
- should be called when using 32-bit CS addressing mode
- ----------15DA-------------------------------
- INT 15 U - AMI PCI BIOS v1.00.05.AX1 - ???
- AH = DAh
- AL = function (00h-08h,12h,14h,15h,19h,88h-8Eh,92h,99h)
- other registers vary by function
- Return: CF clear if successful
- varies by function
- CF set on error
- AH = error code (86h unsupported [sub]function)
- Note: functions not listed above always return CF set and AH=86h; in the
- examined BIOS, functions 02h-04h,06h-07h,89h-8Bh, and 8Dh also
- always return CF set and AH=86h
- SeeAlso: AX=DA00h,AX=DA01h,AX=DA88h,AX=DA99h,AX=DB00h
- --------b-15DA00-----------------------------
- INT 15 U - AMI PCI BIOS - ???
- AX = DA00h
- CL = subfunction
- 00h ???
- 01h ???
- 02h get ???
- ???
- Return: CF clear if successful
- ???
- CF set on error
- AH = error code (86h unsupported subfunction)
- Note: in the v1.00.05.AX1 BIOS, subfunctions 00h and 01h always return
- failure
- SeeAlso: AX=DA01h
- --------b-15DA01-----------------------------
- INT 15 U - AMI PCI BIOS - CPU SPEED CONTROL
- AX = DA01h
- CL = subfunction (00h-02h)
- 00h set low CPU speed
- 01h set high CPU speed
- 02h get current CPU speed
- Return: CF clear if successful
- AH = current/new CPU speed (00h low, 01h high)
- AL = ??? (00h)
- CF set on error
- AH = error code (86h unsupported subfunction)
- Notes: in the v1.00.05.AX1 BIOS, subfunctions 00h and 01h are NOPs in both
- protected and V86 modes due to a test of MSW bit 0
- setting the CPU speed also generates the same audible signals generated
- when manually switching speeds with Ctrl-Alt-Gray- and Ctrl-Alt-Gray+
- BUG: the BIOS apparently intends to return CF set if ???, but fails to use
- a different exit path in that case, resulting in CF clear
- ----------15DA05-----------------------------
- INT 15 U - AMI PCI BIOS - GET ??? AND BIOS REVISION STRINGS
- AX = DA05h
- ES:SI -> 8-byte buffer for ??? and BIOS revision strings
- Return: CF clear
- ES:SI buffer filled
- AL = 00h
- CX = ??? (0000h)
- Notes: for BIOS v1.00.05.AX1, the ??? string is "IDNO" and the BIOS revision
- string is "AX1 "
- SeeAlso: AX=DA15h,AX=DB04h
- ----------15DA08-----------------------------
- INT 15 U - AMI PCI BIOS - ???
- AX = DA08h
- ???
- Return: CF clear if successful
- ???
- CF set on error
- AH = error code (86h unsupported subfunction)
- Note: in the examined v1.00.05.AX1 BIOS, this call always returns failure
- ----------15DA12-----------------------------
- INT 15 U - AMI PCI BIOS - v1.00.05.AX1 - ???
- AX = DA12h
- CL = subfunction
- 00h ???
- 01h ???
- 02h get ???
- 03h ???
- 04h ???
- ???
- Return: CF clear if successful
- ???
- CF set on error
- AH = error code (86h unsupported subfunction)
- Desc: ??? performs various manipulations on system chipset registers
- Notes: subfunctions 00h and 01h are NOPs in protected and V86 modes due to
- a test of MSW bit 0
- subfunctions 00h-02h always return success
- ----------15DA14-----------------------------
- INT 15 U - AMI PCI BIOS - GET/SET ???
- AX = DA14h
- CL = subfunction
- 00h read
- 01h write
- DH = new value for ??? (00h-02h)
- DL = index of ??? (00h-03h, but not range-checked)
- ???
- Return: CF clear if successful
- DH = current value of ??? if reading
- CF set on error
- AH = error code (86h unsupported subfunction)
- Note: the values for indexes 00h and 01h are stored in CMOS RAM location 19h,
- and the values for 02h and 03h are stored in location 36h
- BUG: the v1.00.05.AX1 BIOS range-checks DH on subfunction 00h instead of
- subfunction 01h, even though DH is never used by subfunction 00h
- ----------15DA15-----------------------------
- INT 15 U - AMI PCI BIOS - GET ??? AND BIOS REVISION STRINGS
- AX = DA15h
- ES:DI -> 8-byte buffer for ??? and BIOS revision strings
- Return: CF clear
- ES:DI buffer filled
- AL = 00h
- Note: for BIOS v1.00.05.AX1, the ??? string is "IDNO" and the BIOS revision
- string is "AX1 "
- SeeAlso: AX=DA05h,AX=DB04h
- ----------15DA19-----------------------------
- INT 15 U - AMI PCI BIOS - GET/SET ???
- AX = DA19h
- CL = subfunction
- 00h get first ???
- 01h get second ???
- 02h set first ???
- BX = ???
- DX = ???
- 03h set second ???
- BX = ???
- DX = ???
- Return: CF clear if successful
- AX = 0000h
- BX,DX = ??? (subfunctions 00h and 01h only)
- CF set on error
- AH = error code (86h unsupported subfunction)
- Note: the first ??? is stored in CMOS RAM locations 1Bh-1Eh, the second in
- locations 1Fh-22h in the v1.00.05.AX1 BIOS
- --------b-15DA20-----------------------------
- INT 15 U - AMI PCI BIOS v1.00.12.AX1T - CMOS RAM BITFIELD MANIPULATION
- AX = DA20h
- BL = subfunction
- 00h set CMOS data field
- BH = CMOS data field number (00h-4Dh)
- CH = new value for bitfield (in lowest bits of register)
- 01h read CMOS data field
- BH = CMOS data field number (00h-4Dh)
- Return: CH = value of bitfield
- CL = mask of valid bits
- Note: both CL/CH shifted to move valid bits into lowest pos
- 02h set CMOS byte
- CL = CMOS RAM address (00h-7Fh)
- CH = new value for CMOS byte
- 03h get CMOS byte
- CL = CMOS RAM address (00h-7Fh)
- Return: CH = value of CMOS byte
- 04h update CMOS checksums
- Note: sets 2Eh/2Fh to checksum of 10h-2Dh and 7Eh/7Fh to
- checksum of 48h-7Dh
- 05h verify CMOS checksums
- Return: CF clear if checksums OK
- AH = 00h
- CF set if checksum mismatch
- AH = 01h
- Return: CF clear if successful
- AH = 00h
- CF set on error
- AH = error code (86h unsupported function/data field)
- Notes: this function was not supported by the v1.00.05.AX1 BIOS, but had been
- added by 1.00.12.AX1T
- after using subfunctions 00h or 02h, the application must call
- subfunction 04h to update the checksums to prevent an error the next
- time the system is booted
-
- (Table 0466)
- Values for AMI BIOS v1.00.12.AX1T CMOS bitfield identifier:
- ID address bit(s) contents
- 00h 1Ah 7-6
- 01h 1Dh 7-6
- 02h 6Eh 1
- 03h 77h 0
- 04h 77h 1
- 05h 77h 2
- 06h 77h 3
- 07h 77h 5
- 08h 77h 6
- 09h 77h 7
- 0Ah 78h 7 power management enabled???
- 0Bh 78h 6
- 0Ch 10h 7-4 first floppy drive type
- 0Dh 10h 3-0 second floppy drive type
- 0Eh 11h 7
- 0Fh 20h 4-0 selected language for error messages/setup utility
- 10h 11h 2-1
- 11h 11h 4
- 12h 11h 0
- 13h 11h 3
- 14h 13h 7
- 15h 13h 6-5
- 16h 13h 4-2
- 17h 19h 7
- 18h 19h 6
- 19h 19h 5
- 1Ah 19h 4
- 1Bh 1Eh 2-0
- 1Ch 1Bh 7-6
- 1Dh 1Ch 7
- 1Eh 1Ch 3
- 1Fh 1Ah 5-4
- 20h 1Dh 5-4
- 21h 1Bh 5-4
- 22h 1Ch 6
- 23h 1Ch 2
- 24h 1Ah 3-2
- 25h 1Dh 3-2
- 26h 1Bh 3-2
- 27h 1Ch 5
- 28h 1Ch 1
- 29h 1Ah 1-0
- 2Ah 1Dh 1-0
- 2Bh 1Bh 1-0
- 2Ch 1Ch 4
- 2Dh 1Ch 0
- 2Eh 50h 7-0
- 2Fh 51h 7-0
- 30h 52h 7-0
- 31h 53h 7-0
- 32h 60h 0
- 33h 60h 0
- 34h 60h 0
- 35h 60h 0
- 36h 60h 0
- 37h 60h 0
- 38h 60h 1
- 39h 61h 7
- 3Ah 60h 2
- 3Bh 61h 6-4
- 3Ch 61h 2-0
- 3Dh 60h 7-6
- 3Eh 60h 5-4
- 3Fh 78h 5-4
- 40h 6Eh 5
- 41h 1Eh 3
- 42h 6Eh 0
- 43h 6Eh 2
- 44h 6Fh 1-0
- 45h 6Fh 1-0
- 46h 28h 4-2
- 47h 28h 7-5
- 48h 6Eh 4
- 49h 6Eh 3
- 4Ah 76h 7-0
- 4Bh 77h 4
- 4Ch 11h 6
- 4Dh 1Fh 7-0
- ----------15DA88-----------------------------
- INT 15 U - AMI PCI BIOS - GET EXTENDED MEMORY SIZE
- AX = DA88h
- Return: CF clear (successful)
- AX = 0000h
- CL:BX = extended memory size in KBytes
- SeeAlso: AH=88h
- ----------15DA8C-----------------------------
- INT 15 U - AMI PCI BIOS - GET BIOS AND CHIPSET IDENTIFICATION
- AX = DA8Ch
- CL = subfunction
- 00h get BIOS version string
- ES:DI -> 12-byte buffer for version string
- 01h get chipset identification
- BL = what to retrieve
- (00h host/PCI bridge,01h motherboard chipset)
- ES:DI -> 12-byte buffer for chipset identification (see #0467)
- Return: CF clear if successful
- ES:DI buffer filled
- CF set on error
- AH = error code (86h unsupported subfunction)
- Notes: the v1.00.05.AX1 BIOS returns "1.00.05.AX1 " as its version string
- subfunction 01h returns the five bytes read from the PCI configuration
- registers 00h-05h (see #0798), padded to 12 bytes with NULs
- SeeAlso: AX=DB04h,PORT C000h"Neptune"
-
- Format of AMI PCI BIOS chipset identification:
- Offset Size Description (Table 0467)
- 00h WORD vendor ID (see #0656 at AX=B102h)
- 8086h = Intel
- 02h WORD device ID
- 0484h (BL=01h)
- 04A3h (BL=00h)
- 04h BYTE low byte of PCI Command Register
- 05h 7 BYTEs unused (00h)
- ----------15DA8E-----------------------------
- INT 15 U - AMI PCI BIOS - ???
- AX = DA8Eh
- ???
- Return: CF clear if successful
- ???
- CF set on error
- AH = error code (86h unsupported subfunction)
- Note: in the v1.00.05.AX1 BIOS, this call always returns failure
- ----------15DA92-----------------------------
- INT 15 U - AMI PCI BIOS - GET CPU TYPE AND SPEED
- AX = DA92h
- Return: CF clear (successful)
- AL = CPU stepping (see also #0453 at INT 15/AH=C9h)
- AH = CPU model
- BL = CPU family (05h = Pentium, etc.)
- CX = external clock speed in MHz (BCD)
- (0040h,0050h,0060h,0066h are possible return values on my
- Pentium with the Intel "Neptune" chipset)
- EAX high word destroyed
- Note: 90 MHz and faster Pentium CPUs can be configured to run at varying
- multiples of the external clock speed, i.e. a typical 90 MHz Pentium
- system will run the motherboard at 60 MHz (my 90 MHz Pentium returns
- 0060h in CX)
- SeeAlso: AH=C9h
- ----------15DA99-----------------------------
- INT 15 U - AMI PCI BIOS - GET/SET ??? FLAG
- AX = DA99h
- CL = subfunction
- 00h check if ???
- 01h set ??? flag
- 02h clear ??? flag
- Return: CF clear if successful
- AH = ??? (00h,01h)
- AL = 00h
- CF set on error
- AH = error code (86h unsupported subfunction)
- Note: the flag is stored in bit 0 of CMOS RAM location 2Ch for BIOS
- v1.00.05.AX1
- --------b-15DB00-----------------------------
- INT 15 U - AMI BIOS - Flash ROM - READ FLASH BIOS
- AX = DB00h
- DS:SI -> parameter block (see #0468)
- ES:DI -> buffer for copied information
- Return: CF clear if successful
- CF set on error
- AH = status (86h if not implemented)
- DS,ES destroyed, possibly other registers
- Note: used by FMUP.EXE, Intel's Flash Memory Update utility
- SeeAlso: AH=DAh,AX=DB01h,AX=DB04h
-
- Format of AMI BIOS Flash ROM parameter block:
- Offset Size Description (Table 0468)
- 00h 32 BYTEs ASCIZ description of the file's contents
- 20h BYTE Logical area type (see #0469)
- 21h DWORD logical area size (overall size of area)
- 25h BYTE flag: load from file (FF=yes, 00=no)
- 26h BYTE flag: reboot after update (FF=yes, 00=no)
- 27h BYTE flag: update entire image (FF=yes, 00=no)
- 28h 24 BYTEs ASCIZ logical area name (cooresponds to offset 20)
- "System BIOS"
- "Logo Data Area", etc.
- 40h 15 BYTEs ASCIZ time stamp string: MM/DD/YY-HH:MM
- 4Fh BYTE checksum for this header (sum of all bytes except this one)
- if checksum would be 00h,01h, or FFh, it is set to 2Ah
- 50h DWORD this file's starting address (offset in image)
- 54h DWORD size of image chunk in this file
- 58h BYTE logical area type - same as offset 20h
- 59h BYTE flag: last file in chain (FF=yes, 00=no)
- 5Ah 6 BYTEs ASCIZ signature "FLASH"
- 60h 16 BYTEs ASCIZ filename of next file in chain
- 70h 16 BYTEs ASCIZ BIOS reserved string (usually version #)
- Notes: this block is identical in format to the 128-byte header on an AMI
- BIOS Update file
- for AX=DB00h, the following fields must be specified: 50h,54h,58h;
- the fields at offset 20h and 5Ah should also be set if possible
- the fields at offsets 40h and 70h will be set on return, if available
- SeeAlso: #0470
- --------b-15DB01-----------------------------
- INT 15 U - AMI BIOS - Flash ROM - GET BIOS SUBSYSTEM INFORMATION
- AX = DB01h
- CL = BIOS subsystem information identifier (see #0469)
- Return: CF clear if successful
- AX = 0000h
- ES:DI -> 56-byte record describing subsystem (see #0470)
- CF set on error
- AH = status
- 01h nonexistent subsystem
- 86h function not supported
- AL = 00h
- Note: used by FMUP.EXE, Intel's Flash Memory Update utility
- SeeAlso: AX=DB00h,AX=DB02h
-
- (Table 0469)
- Values for AMI BIOS subsystem identifier:
- 00h recovery code
- 01h system BIOS
- 02h PCI configuration data
- 03h OEM logo data area (see #0471)
- 04h system BIOS/Language Set (one system)
- configuration utility (another system)
- SeeAlso: #0470
-
- Format of AMI BIOS subsystem information:
- Offset Size Description (Table 0470)
- 00h BYTE subsystem identifier/logical area type (see #0469)
- 01h DWORD subsystem (FlashROM page) size in bytes
- 05h BYTE flag: loadable from file (FFh=yes)
- 06h BYTE flag: reboot after update (FFh=yes)
- 07h BYTE flag: update entire image (FFh=yes)
- 08h 24 BYTEs subsystem/logical area name
- 20h BYTE subsystem identifier???
- 21h BYTE flag: reprogrammable if FFh
- 22h BYTE ??? (01h,02h seen)
- 23h 5 BYTEs ??? (apparently always 00h)
- 28h 16 BYTEs BIOS reserved string (usually version number)
- SeeAlso: #0468
-
- Format of AMI OEM Logo data area:
- Offset Size Description (Table 0471)
- 00h 8 BYTEs signature
- "TEXTLOGO" if text-mode OEM logo
- 8 DUP (FFh) if unused
- 08h WORD offset of logo font definition table
- 0Ah WORD offset of logo data
- 0Ch WORD size of logo font table in words
- 0Eh WORD offset of upper left corner of logo in video page
- 10h WORD width of logo
- 12h WORD height of logo
- 14h BYTE reserved???
- var var logo font definition (16 bytes per character)
- var var logo data as character/attribute pairs
- Note: the attribute for the logo characters specifies which font will be used
- for that character. If bit 3 is cleared, the normal system font is
- used; if bit 3 is set, the logo font is used, with screen colors
- adjusted to match the corresponding non-bright attribute for the
- system font
- SeeAlso: #0469,#0470
- --------b-15DB02-----------------------------
- INT 15 U - AMI BIOS - Flash ROM - GET SIZE OF FLASH ROM PROGRAMMING CODE
- AX = DB02h
- Return: CF clear
- AX = 0000h
- BX = size of ROM programming code in bytes
- Note: used by FMUP.EXE, Intel's Flash Memory Update utility
- SeeAlso: AX=DB00h,AX=DB03h
- --------b-15DB03-----------------------------
- INT 15 U - AMI BIOS - Flash ROM - GET FLASH ROM PROGRAMMING CODE
- AX = DB03h
- DS:SI -> ???
- ES:DI -> buffer for Flash ROM programming code
- BX = ???
- DX = ???
- Return: CF clear if successful
- AH = ???
- BX = ???
- DX = ???
- CF set on error
- AH = error code
- Notes: the entry point for the copied code (which is fully relocatable) is
- the very first byte (see #0472)
- used by FMUP.EXE, Intel's Flash Memory Update utility
- SeeAlso: AX=DB00h,AX=DB02h
-
- (Table 0472)
- Call AMI BIOS ??? code with:
- AL = function
- 00h erase Flash ROM block
- CX = ???
- bit 8: address line A16 inverted
- ???
- 01h program new data into Flash ROM
- ???
- 02h perform cold reboot
- DS:SI -> ??? (see #0473)
- ES:DI -> ???
- Return: AH = status
- 00h successful
- 01h invalid function
- 02h ???
- 03h ???
- 04h ???
- Note: DS:SI and ES:DI are ignored for function 02h
-
- Format of AMI BIOS Flash ROM programming parameters:
- Offset Size Description (Table 0473)
- 00h 32 BYTEs ???
- 20h BYTE BIOS section number
- 21h DWORD length of BIOS code/data in bytes
- 25h 43 BYTEs ???
- 50h DWORD ???
- 54h 44 BYTEs ???
- SeeAlso: #0472
- --------b-15DB04-----------------------------
- INT 15 U - AMI BIOS - Flash ROM - GET BIOS REVISION
- AX = DB04h
- Return: CF clear if supported
- BL:BH:DL:DH = BIOS revision string
- (e.g. 'AX1 ' for v1.00.05.AX1, 'AV0M' for v1.00.03.AV0M)
- CL = flag: DH valid?
- 00h ignore DH; ignore DL as well if 20h (space)
- 01h ignore DH if 20h (space)
- CH = BIOS status
- 00h normal mode
- 01h ROM recovery mode
- AL = ??? (02h)
- Note: used by FMUP.EXE, Intel's Flash Memory Update utility
- SeeAlso: AX=DA05h,AX=DA15h,AX=DA8Ch,AX=DB00h,AX=DB03h
- --------Q-15DE00-----------------------------
- INT 15 - DESQview - GET PROGRAM NAME
- AX = DE00h
- Return: AX = offset into DESQVIEW.DVO of program most recently selected from
- the "Switch Windows" menu (see #0474)
- Note: always returns AX=0000h under DESQview/X
- SeeAlso: AX=DE07h
-
- Format of program entry in DESQVIEW.DVO:
- Offset Size Description (Table 0474)
- 00h BYTE length of name (FFh if end of file)
- 01h N BYTEs name
- 2 BYTEs keys to invoke program (second = 00h if only one key used)
- BYTE program type
- 00h normal program
- 04h divider
- 80h Delete a Program
- 81h Change a Program
- WORD ??? apparently always 0000h
- --------Q-15DE01-----------------------------
- INT 15 - DESQview - UPDATE "OPEN WINDOW" MENU
- AX = DE01h
- Return: nothing
- Notes: reads DESQVIEW.DVO, disables Open menu if file not in current directory
- NOP for DESQview/X
- --------Q-15DE02-----------------------------
- INT 15 - DESQview 1.x only - SET ??? FLAG FOR CURRENT WINDOW
- AX = DE02h
- Return: nothing
- Note: this call is a NOP in DV 2.x
- SeeAlso: AX=DE03h
- --------Q-15DE03-----------------------------
- INT 15 - DESQview 1.x only - GET ??? FOR CURRENT WINDOW
- AX = DE03h
- Return: AX = ??? for current window
- BX = ??? for current window
- Note: this call is a NOP in DV 2.x
- SeeAlso: AX=DE02h
- --------Q-15DE04-----------------------------
- INT 15 - DESQview - GET AVAILABLE COMMON MEMORY
- AX = DE04h
- Return: BX = bytes of common memory available
- CX = largest block available
- DX = total common memory in bytes
- SeeAlso: AX=DE05h,AX=DE06h
- --------Q-15DE05-----------------------------
- INT 15 - DESQview - GET AVAILABLE CONVENTIONAL MEMORY
- AX = DE05h
- Return: BX = KB of memory available
- CX = largest block available
- DX = total conventional memory in KB
- SeeAlso: AX=DE04h,AX=DE06h
- --------Q-15DE06-----------------------------
- INT 15 - DESQview - GET AVAILABLE EXPANDED MEMORY
- AX = DE06h
- Return: BX = KB of expanded memory available
- CX = largest block available
- DX = total expanded memory in KB
- SeeAlso: AX=DE04h,AX=DE05h
- --------Q-15DE07-----------------------------
- INT 15 - DESQview - "APPNUM" - GET CURRENT PROGRAM'S NUMBER
- AX = DE07h
- Return: AX = number of program as it appears on the "Switch Windows" menu
- Note: this API call may be made from a hardware interrupt handler
- SeeAlso: AX=DE00h
- --------Q-15DE08-----------------------------
- INT 15 - DESQview - GET ???
- AX = DE08h
- Return: AX = 0000h if ??? is not set to the current task
- 0001h if ??? is set to the current task
- --------Q-15DE09-----------------------------
- INT 15 - DESQview - UNIMPLEMENTED
- AX = DE09h
- Return: nothing (NOP in DV 1.x and 2.x)
- --------Q-15DE0A-----------------------------
- INT 15 - DESQview v2.00+ - "DBGPOKE" - DISPLAY CHARACTER ON STATUS LINE
- AX = DE0Ah
- BL = character
- Return: character displayed, next call will display in next position (which
- wraps back to the start of the line if off the right edge of screen)
- Notes: displays character on bottom line of *physical* screen, regardless
- of current size of window (even entirely hidden)
- does not know about graphics display modes, just pokes the characters
- into display memory
- this API call may be made from a hardware interrupt handler
- SeeAlso: AX=1003h
- --------Q-15DE0B-----------------------------
- INT 15 - DESQview v2.00+ - "APILEVEL" - DEFINE MINIMUM API LEVEL REQUIRED
- AX = DE0Bh
- BL = API level minor version number
- BH = API level major version number
- Return: AX = maximum API level (AH = major, AL = minor)
- Notes: if the requested API level is greater than the version of DESQview, a
- "You need a newer version" error window is popped up
- the API level defaults to 1.00, and is inherited by child tasks
- --------Q-15DE0C-----------------------------
- INT 15 - DESQview v2.00+ - "GETMEM" - ALLOCATE "SYSTEM" MEMORY
- AX = DE0Ch
- BX = number of bytes
- Return: ES:DI -> allocated block or 0000h:0000h (DV 2.26+)
- Note: use SETERROR (AX=DE15h) to avoid a user prompt if there is insufficient
- system memory
- SeeAlso: AX=1001h,AX=102Eh,AX=DE0Dh,AX=DE15h,AX=DE19h
- --------Q-15DE0D-----------------------------
- INT 15 - DESQview v2.00+ - "PUTMEM" - DEALLOCATE "SYSTEM" MEMORY
- AX = DE0Dh
- ES:DI -> previously allocated block
- Return: nothing
- SeeAlso: AX=1002h,AX=DE0Ch
- --------Q-15DE0E-----------------------------
- INT 15 - DESQview v2.00+ - "FINDMAIL" - FIND MAILBOX BY NAME
- AX = DE0Eh
- ES:DI -> name to find (see #0475)
- CX = length of name
- Return: BX = 0000h not found
- 0001h found
- DS:SI = object handle
- SeeAlso: AH=12h/BH=11h,AH=12h/BH=12h"GETNAME"
-
- (Table 0475)
- Values for special DESQview mailbox names:
- "COM1" ... "COM4" RBcomm using COM1 ... COM4
- "DESQview/X Help Engine"
- "DESQview/X Network Server" Network Manager
- "DESQview X Server0" X-Windows server
- "DESQview X Server7" X-Windows printing service
- "INBOX" DESQview/X LPD requests
- "OUTBOX" DESQview/X LPD responses
- "WAITBOX" semaphore to synchronize DESQview/X LPD communications
- "_DVNM_" DV/X v1.10 network manager
- --------Q-15DE0F-----------------------------
- INT 15 - DESQview v2.00+ - ENABLE DESQview EXTENSIONS
- AX = DE0Fh
- Return: AX and BX destroyed (seems to be bug, weren't saved&restored)
- Notes: sends a manager stream with opcodes AEh, BDh, and BFh to task's window
- enables an additional mouse mode
- --------Q-15DE10-----------------------------
- INT 15 - DESQview v2.00+ - "PUSHKEY" - PUT KEY INTO KEYBOARD INPUT STREAM
- AX = DE10h
- BH = scan code
- BL = character
- Return: nothing
- Notes: a later read will get the keystroke as if it had been typed by the user
- multiple pushes are read last-in first-out
- if a script exists for the pushed key in the current application, the
- script will be executed
- early copies of DV 2.00 destroy AX, BX, ES, and DI
- SeeAlso: INT 16/AH=05h
- --------Q-15DE11BL00-------------------------
- INT 15 - DESQview v2.00+ - "JUSTIFY" - EN/DISABLE AUTOM. WINDOW JUSTIFICATION
- AX = DE11h
- BL = 00h viewport will not move automatically
- nonzero viewport will move to keep cursor visible (default)
- Return: nothing
- --------Q-15DE12BX0000-----------------------
- INT 15 - DESQview v2.01+ - "CSTYLE" - SET "C"-COMPATIBLE CONTROL CHAR INTERPRET
- AX = DE12h
- BX = 0000h select normal style (linefeed only moves down)
- nonzero select C style (linefeed moves to start of next line)
- Return: nothing
- Note: set on a per-task basis, and inherited from the parent task
- --------Q-15DE13-----------------------------
- INT 15 - DESQview v2.20+ - "GETCRIT" - GET CRITICAL NESTING COUNT
- AX = DE13h
- Return: BX = number of calls to BEGINC or ENTERC
- (see INT 15/AX=101Bh,INT 15/AX=DE1Ch) without matching ENDC
- (see INT 15/AX=101Ch)
- Note: this API call may be made from within a hardware interrupt handler
- SeeAlso: AX=101Bh,AX=101Ch,AX=DE1Bh,AX=DE1Ch
- --------Q-15DE14-----------------------------
- INT 15 - DESQview v2.20+ - GET OBJECT TYPE
- AX = DE14h
- ES:DI -> object
- Return: BL = 00h not an object
- 08h window or task
- 09h mailbox
- 0Ah keyboard
- 0Bh timer
- 0Ch objectq
- 0Fh pointer
- 10h panel
- SeeAlso: AX=1016h
- --------Q-15DE15-----------------------------
- INT 15 - DESQview v2.20+ - SET ERROR HANDLING
- AX = DE15h
- BL = error handling mode
- 00h post system error on all error conditions
- 01h return carry flag set on calls to ADDTO, SUBFROM, and WRITE
- messages sent to mailboxes which fail due to lack of system
- or common memory
- 02h (v2.26+) same as 01h, but also return null pointer for GETMEM
- calls which fail due to lack of system memory
- Return: nothing
- SeeAlso: AX=DE0Ch,AX=DE16h
- --------Q-15DE16-----------------------------
- INT 15 - DESQview v2.20+ - GET ERROR HANDLING
- AX = DE16h
- Return: BL = current mode
- 00h always post system error
- 01h return carry flag set on failed mailbox writes
- 02h return CF set on failed mailbox writes and NULL on failed
- GETMEM calls
- SeeAlso: AX=DE15h
- --------Q-15DE17-----------------------------
- INT 15 - DESQview v2.20-2.25 - reserved
- AX = DE17h
- Return: pops up "Programming error" window
- Note: AX = 1117h is NOT identical to this call under DESQview 2.20 thru 2.25
- SeeAlso: AX=1117h
- --------Q-15DE17-----------------------------
- INT 15 - DESQview v2.26+ - "ASSERTMAP" - GET/SET MAPPING CONTEXT
- AX = DE17h
- BX = function
- 0000h get current mapping context without setting
- nonzero set new mapping context to BX
- Return: BX = mapping context in effect before call
- Notes: mapping contexts determine conventional-memory addressability; setting
- a mapping context ensures that the associated program and data areas
- are in memory for access. Usable by drivers, TSRs and shared
- programs.
- caller need not be running under DESQview
- this API call may be made from a hardware interrupt handler
- SeeAlso: AX=1016h,AX=1117h,AX=DE21h,INT 2F/AX=1685h
- --------Q-15DE18-----------------------------
- INT 15 - DESQview v2.20+ - internal - ???
- AX = DE18h
- BP = function number
- high byte must be 10h
- low byte is function
- 00h set ???
- BL = ??? (00h-10h, video mode???)
- BH = value to store
- 03h set ???
- BL = ??? (stored in driver)
- 0Ah get ???
- ES:DI -> 18-byte buffer to hold ???
- Note: calls video driver (NOP for Hercules driver,probably CGA and MCGA also)
- --------Q-15DE19-----------------------------
- INT 15 - DESQview v2.23+ - "GETCOMMON" - ALLOCATE "COMMON" MEMORY
- AX = DE19h
- BX = number of bytes to allocate
- Return: AX = 0000h successful
- ES:DI -> allocated block
- nonzero insufficient memory
- Note: this API call may be made from within a hardware interrupt handler
- SeeAlso: AX=DE0Ch,AX=DE15h,AX=DE1Ah
- --------Q-15DE1A-----------------------------
- INT 15 - DESQview v2.23+ - "PUTCOMMON" - DEALLOCATE "COMMON" MEMORY
- AX = DE1Ah
- ES:DI -> previously allocated block
- Return: AX = 0000h (successful)
- Note: this function may be called from within a hardware interrupt handler
- SeeAlso: AX=DE0Dh,AX=DE19h
- --------Q-15DE1B-----------------------------
- INT 15 - DESQview v2.23+ internal - DECREMENT CRITICAL NESTING COUNT
- AX = DE1Bh
- Return: nothing
- SeeAlso: AX=101Ch,AX=DE13h,AX=DE1Ch
- --------Q-15DE1C-----------------------------
- INT 15 - DESQview v2.23+ - "ENTERC" - INCREMENT CRITICAL NESTING COUNT
- AX = DE1Ch
- Return: nothing
- Notes: similar to AX=101Bh, but begins the critical region without ensuring
- that DOS is free
- the official documentation states that this call should be paired with
- "ENDC" (AX=101Ch); no mention is made of AX=DE1Bh
- this API call may be made from within a hardware interrupt handler
- SeeAlso: AX=101Bh,AX=101Ch,AX=DE13h,AX=DE1Bh
- --------Q-15DE1D-----------------------------
- INT 15 - DESQview v2.23+ - "PUTKEY" - FAKE USER KEYSTROKES
- AX = DE1Dh
- DX = segment of handle for task to receive keystroke
- BL = character
- BH = scan code
- Return: AX = 0000h if successful
- nonzero if receiver's keyboard buffer was full
- Notes: the key is treated as though the user had pressed it, ignoring any
- script which may be bound to the key, and using the current field
- table if the keyboard object is in field processing mode
- multiple PUTKEYs are seen in the order in which they are executed
- SeeAlso: AX=DE10h
- --------Q-15DE1E-----------------------------
- INT 15 - DESQview v2.23+ - "SCRNINFO" - GET TRUE VIDEO PARAMETERS
- AX = DE1Eh
- Return: CL = actual number of rows on screen
- CH = actual number of columns on screen
- BL = actual video mode (may differ from INT 10/AH=0Fh return) (v2.26+)
- Note: this API call may be made from a hardware interrupt handler
- SeeAlso: INT 10/AH=0Fh
- --------Q-15DE1F-----------------------------
- INT 15 - DESQview v2.23+ - "DOSUSER" - GET HANDLE OF TASK CURRENTLY USING DOS
- AX = DE1Fh
- Return: BX = segment of task handle or 0000h if no tasks are using DOS
- Note: this API call may be made from within a hardware interrupt handler
- SeeAlso: AX=DE13h,INT 21/AH=34h
- --------Q-15DE20-----------------------------
- INT 15 - DESQview v2.26+ - "DISPATCHINT" - INTERRUPT ANOTHER TASK
- AX = DE20h
- BX = segment of handle of task to interupt
- DX:CX -> FAR interrupt routine
- BP,SI,DI,DS,ES as required by interrupt routine
- Return: nothing
- Notes: unlike "PGMINT" (AX=1021h), DISPATCHINT may be applied to the task
- making the DISPATCHINT call
- multiple "DISPATCHINT" calls are processed in the order in which they
- were executed
- the FAR routine is entered with the current ES, DS, SI, DI, and BP
- values, using the task's internal stack (see AX=101Ah); only SS:SP
- needs to be preserved
- this API call may be made from within a hardware interrupt handler
- SeeAlso: AX=1021h,AX=DE2Ah
- --------Q-15DE21-----------------------------
- INT 15 - DESQview v2.26+ - "ASSERTVIR" - CONTROL 386 SCREEN VIRTUALIZATION
- AX = DE21h
- BX = new state
- 0000h turn off
- nonzero turn on
- Return: BX = old state of virtualization
- Notes: this API call may be made from within a hardware interrupt handler
- under DV 2.40 and 2.42, this call appears to have no effect and always
- returns a nonzero value in BX which appears to be the offset within
- the DV common memory segment of the caller's task object; it may
- only have an effect within a hardware interrupt handler
- SeeAlso: AX=1117h,AX=DE17h
- --------Q-15DE22-----------------------------
- INT 15 - DESQview v2.26+ - "PROCESSMEM" - GET TASK MEMORY STATUS
- AX = DE22h
- DX = segment of task handle
- Return: DX = total amount of memory in paragraphs
- BX = amount of system memory in paragraphs
- CX = largest block of system memory available in paragraphs
- AX = memory flags (see #0476)
- Notes: if the task handle is a child task, the returned values will be for the
- process containing the task, rather than the task itself
- if the process's system memory is swapped out, BX,CX,DX remain
- unchanged, because the memory usage cannot be determined
- SeeAlso: AX=DE04h,AX=DE05h,AX=DE06h
-
- Bitfields for DESQview process memory flags:
- Bit(s) Description (Table 0476)
- 0 system memory resides in shared memory
- 1 process's memory is swapped out
- 2 process's system memory is swapped out
- --------Q-15DE23-----------------------------
- INT 15 U - DESQview v2.31+ - ???
- AX = DE23h
- BX = ??? IRQ number on first PIC?
- CX = ??? IRQ number on second PIC?
- Return: ???
- Note: called by QEMM 6.00+
- --------Q-15DE24-----------------------------
- INT 15 - DESQview v2.40+ - "XNEWPROC" - START NEW APPLICATION
- AX = DE24h
- BX = length of .DVP data
- CX = length of ??? string
- DS:SI -> ??? string
- ES:DI -> .DVP data (see #0353 at AX=102Ch)
- Return: BX = segment of task handle??? or 0000h on error
- Note: this call is similar to AX=102Ch except that it can interpret the
- extended DVP data
- SeeAlso: AX=102Ch
- --------Q-15DE25-----------------------------
- INT 15 - DESQview v2.40+ - "GETDVPATH" - GET DESQview DIRECTORY
- AX = DE25h
- ES:DI -> 67-byte buffer for ASCIZ directory name
- Return: ES:DI buffer filled with directory from which DESQview was started
- BUG: DV 2.42 does not place a terminating NUL at the end of the directory
- name, so if the buffer is not cleared to zeros before the call,
- there is no way to tell where the directory name ends. This bug
- has been fixed in DV 2.52 (DV/X 1.02)
- SeeAlso: AX=DE2Eh,INT 21/AH=47h
- --------Q-15DE26-----------------------------
- INT 15 - DESQview v2.40+ - "GETFOREGROUND" - GET KEYBOARD FOCUS
- AX = DE26h
- Return: BX = segment of handle for task with keyboard focus
- Note: under DESQview/X, the X server always has the keyboard focus unless a
- "direct" window is active
- SeeAlso: AX=DE2Fh,INT 2F/AX=DE0Ah
- --------Q-15DE27-----------------------------
- INT 15 - DESQview v2.50+ - "ADDINSTANCEDATA" - ADD PER-TASK SAVE/RESTORE AREA
- AX = DE27h
- BX = type
- 0000h process
- 0001h task
- ES:DI -> list of Instance Item Structures (see #0477)
- Return: CF clear if successful
- AX = ???
- BX = ???
- CF set on error
- AX = error code???
- 0004h invalid BX value
- Note: DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.
- SeeAlso: INT 2F/AX=DE08h,INT 2F/AX=DE09h
-
- Format of DESQview Instance Item Structure [one element of list]:
- Offset Size Description (Table 0477)
- 00h WORD length of data area DESQview should save and restore on context
- switches (0000h = end of list)
- 02h DWORD pointer to area to be saved/restored
- --------Q-15DE28-----------------------------
- INT 15 U - DESQview v2.50+ - ???
- AX = DE28h
- BX = segment of ??? or 0000h for default
- ???
- Return: ???
- Note: DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.
- SeeAlso: AX=DE2Ah
- --------Q-15DE29BX0000-----------------------
- INT 15 U - DESQview/X - ???
- AX = DE29h
- BX = 0000h
- ???
- Return: CF clear if successful
- ???
- CF set on error
- Notes: DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.
- under DESQview 2.60, this function and all other subfunctions of
- AX=DE29h always return CF set, as they are unique to DESQview/X
- --------Q-15DE29BX0001-----------------------
- INT 15 U - DESQview/X - ???
- AX = DE29h
- BX = 0001h
- DX = segment of window handle
- Return: CF clear if successful
- AX = ???
- DX = ???
- CF set on error
- Note: DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.
- --------Q-15DE29BX0002-----------------------
- INT 15 U - DESQview/X - ???
- AX = DE29h
- BX = 0002h
- DX = segment of window handle
- Return: CF clear if successful
- AX = ???
- DX = ???
- CF set on error
- Note: DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.
- --------Q-15DE29BX0003-----------------------
- INT 15 U - DESQview/X - ???
- AX = DE29h
- BX = 0003h
- DX = segment of window handle
- Return: CF clear if successful
- ???
- CF set on error
- Note: DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.
- --------Q-15DE29BX0004-----------------------
- INT 15 U - DESQview/X - GET DISPLAY NAME
- AX = DE29h
- BX = 0004h
- CX = size of buffer in bytes
- DX = segment of window handle
- ES:DI -> buffer for display name
- Return: CF clear if successful
- buffer filled with ASCIZ display name (truncated if necessary) or
- null string if no display
- CF set on error
- Notes: DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.
- the name ":0" refers to the local display
- --------Q-15DE29BX0005-----------------------
- INT 15 U - DESQview/X - ???
- AX = DE29h
- BX = 0005h
- ???
- Return: CF clear if successful
- ???
- CF set on error
- Note: under DESQview 2.60, this function and all other subfunctions of
- AX=DE29h always return CF set, as they are unique to DESQview/X
- --------Q-15DE2A-----------------------------
- INT 15 - DESQview v2.50+ - "DISPATCHINTAFTERDOS" - INTERRUPT ANOTHER TASK
- AX = DE2Ah
- BX = segment of handle for task to interrupt or 0000h for caller
- DX:CX -> interrupt routine
- BP,SI,DI,DS,ES as required by interrupt routine
- Return: nothing
- Notes: DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.
- this call is the same as AX=DE20h except that it will delay
- interrupting the specified task until after it has exited DOS
- SeeAlso: AX=1021h,AX=DE20h
- --------Q-15DE2B-----------------------------
- INT 15 - DESQview v2.50+ - "OBJNEXT" - TRAVERSE OBJECT LIST
- AX = DE2Bh
- ES:DI -> starting object
- 0000h:0000h for first object in list???
- Return: AX = status
- 0000h successful
- ES:DI -> next object of same type (window/non-window)
- 0001h failed (ES:DI was not a valid handle)
- Notes: DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.
- there are two separate lists, one for window/task objects and one
- for all other objects
- SeeAlso: AX=1016h,AX=DE2Ah,AX=DE2Ch
- --------Q-15DE2C-----------------------------
- INT 15 - DESQview v2.50+ - "WININFO" - GET WINDOW INFORMATION
- AX = DE2Ch
- DX = window information format version (0100h for DESQview 2.5x)
- BX = segment of window handle or 0000h for default
- ES:DI -> buffer for window information (see #0478)
- Return: AX = status
- 0000h successful
- Note: DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.
- SeeAlso: AX=1000h,AX=1016h,AX=DE01h,AX=DE2Bh
-
- Format of DESQview window information:
- Offset Size Description (Table 0478)
- 00h BYTE task flag: 00h window, 01h task
- 01h BYTE process number if owner task
- 00h if non-owner task
- 02h WORD segment of owner's handle, 0000h if orphaned
- 04h WORD mapping context (see #0342 at AX=1016h)
- 06h BYTE task status (see #0479)
- 07h BYTE unused
- 08h WORD status bits (see #0480)
- 0Ah BYTE 01h if foreground-only window
-
- (Table 0479)
- Values for DESQview task status:
- 00h "Waiting" waiting for input
- 01h "Idle" keyboard poll limit reached
- 03h same as 01h
- 04h "Pausing" INT 15/AX=1000h pause called
- 04h DV/X direct: user did something to allow task switch
- 05h "ModeChg" video mode about to be changed
- 06h "ModeNtf" notify that video mode changed
- 07h "MoniCh" requested change to other monitor
- 08h "StartPgm" control relinquished to start new process
- 09h "MgrCan" made window manager CANCEL command
- 0Ah "Slicing" time slice expired
- 0Bh "Exit DOS" notify on DOS calls
- 0Ch "Enter DOS" process is re-entering DOS
- 0Dh "Terminate" INT 21/AH=4Ch or task freed
- 0Eh "BrkNxt" Control-Break pressed
- 0Fh "MgrCol" keyboard focus taken away
- 10h "PgmInt" interrupted by API call from another task
- 11h "BldOpen" call to INT 15/AX=DE01h
-
- Bitfields for DESQview task status bits:
- Bit(s) Description (Table 0480)
- 6 task is freeing another task
- 5 process is being created
- 4 user suspended process
- 3 process suspended itself
- 2 process is resized direct window (suspended)
- 1 process swapped out
- 0 DESQview process
- --------Q-15DE2D-----------------------------
- INT 15 U - DESQview v2.50+ - GET/SET SOCKET HANDLER
- AX = DE2Dh
- CX = direction
- FFFFh set socket handler
- DX:BX -> FAR function for socket interface
- must be of the format described under INT 63"DESQview"
- at #3186
- other get socket handler
- Return: DX:BX -> socket handler (see #3186)
- Notes: DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.
- the "set" subfunction is normally called only by SOCKET.DVR
- SeeAlso: AX=DE2Eh,INT 63"DESQview",#3186
- --------Q-15DE2E-----------------------------
- INT 15 U - DESQview v2.50+ - SOCKET API
- AX = DE2Eh
- DX:BX -> socket record (see #0482)
- 0000h:0000h to create a new socket record
- Return: CX = size of socket record in bytes
- DX:BX -> socket record which was used
- Notes: DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.
- socket records are allocated from common memory
- for Unix compatibility, each socket and connection on a socket is
- allocated a DOS file handle (referencing an SFT for NUL) which is
- used on various calls to specify which of possibly multiple
- connections is to be operated upon
- SeeAlso: AX=DE2Dh,INT 61/AX=0001h/SF=0001h"VINES",INT 63"DESQview"
-
- (Table 0481)
- Values for DESQview/X socket API function number:
- 0000h initialize socket???
- 0001h "gethostname"
- 0002h "ioctl" check for input
- 0003h "sleep" delay for specified period
- 0004h "htons" convert word to network (big-endian) byte order
- 0005h "select"
- 0006h "bsd_close"/"so_close" close socket
- 0007h NOP
- 0008h "connect" initiate connection on socket
- 0009h "recv"/"recvfrom" read from socket
- 000Ah "socket"
- 000Bh ???
- 000Ch "gethostbyname"
- 000Dh "send"/"sendto" write to socket
- 000Eh ??? (does something to all connections for process)
- 000Fh "getpid" get process identifier
- 0010h "gettimeofday"
- 0011h "bind" assign name to socket
- 0012h "listen" listen for connections on socket
- 0013h "accept" accept connection on socket
- 0014h connect to X server
- 0015h "gethostbyaddr" get host information for an address
- 0016h "getprotobyname"
- 0017h "getprotobynumber"
- 0018h "getservbyname"
- 0019h "getservbyport"
- 001Ah "getsockname" determine name bound to socket
- 001Bh "getpeername" get name of connected peer
- 001Ch "getsockopt"/"setsockopt"
- 001Dh "so_exit" close all sockets for calling process
- 001Eh "issock" determine whether file handle references socket
- 001Fh "so_attach" reattach previously detached socket
- 0020h "so_detach" temporarily detach socket
- 0021h "dvpath" get DESQview directory (see also AX=DE24h)
- 0022h "NewProc" start new application (see also AX=102Ch)
- 0023h "so_linkup"
- 0024h "CanonicalPath" canonicalize filename (see also INT 21/AH=60h)
- 0025h indirect INT 15h call
- 0026h Network Manager interface
- 0027h "so_unlink" close connection from "so_linkup"
- 0028h "raisepriority"
- 0029h "lowerpriority"
- 002Ah "so_private" ???
- FFFFh "NetExit" (appears to be a NOP)
-
- Format of DESQview/X socket record:
- Offset Size Description (Table 0482)
- 00h WORD signature F0ADh
- 02h WORD function number (see #0481)
- 04h WORD returned error code (see #0502)
- 06h WORD maximum message size??? (usually 0400h)
- 08h WORD PSP segment to use or 0000h if socket not valid
- 0Ah WORD scratch space (JFT size)
- 0Ch DWORD scratch space (JFT address)
- 10h DWORD mailbox handle (initialized by function 0000h)
- 14h DWORD timer object handle (initialized by function 0000h)
- ---function 0000h---
- 18h WORD (ret) ???
- ---function 0001h---
- 18h WORD (ret) status???
- 1Ah 128 BYTEs (ret) ASCIZ hostname (empty string if not on network)
- 9Ah WORD maximum length of hostname to return
- ---function 0002h---
- 18h WORD (ret) status
- 1Ah WORD socket's file handle
- 1Ch WORD IOCTL function
- 05h "FIONREAD" determine available input
- 06h "FIONBIO" set blocking state of socket
- 1Eh WORD (return, subfn 05h) number of bytes available for reading
- (call, subfn 06h) 0000h blocking, nonzero nonblocking
- ---function 0003h---
- 18h 2 BYTEs unused
- 1Ah WORD delay time in seconds
- ---function 0004h---
- 18h WORD (ret) result in network (big-endian) byte order
- 1Ah WORD value to convert to network byte order
- ---function 0005h---
- 18h WORD (ret) number of handles meeting the specified conditions???
- 1Ah WORD number of file handles in each bitset
- 1Ch DWORD bitset of socket handles to check for readability
- 20h DWORD bitset of socket handles to check for writability
- 24h DWORD bitset of socket handles to check for errors
- 28h WORD timeout in ??? or 0000h to block until some socket ready
- 2Ah DWORD ???
- 2Eh DWORD ???
- ---function 0006h---
- 18h WORD (ret) status: 0000h if successful, FFFFh on error
- 1Ah WORD socket's file handle
- ---function 0008h---
- 18h WORD (ret) status: 0000h if successful, FFFFh on error
- 1Ah WORD socket's file handle
- 1Ch WORD 0001h if socket name specified, 0000h if not
- 1Eh WORD length of socket name
- 20h N BYTEs name of socket to which to connect
- ---function 0009h---
- 18h WORD (ret) number of bytes actually read, 0000h if connection
- closed, or FFFFh on error
- 1Ah WORD socket's file handle
- 1Ch WORD number of bytes to read
- 1Eh WORD flags
- 20h WORD 0000h if no source address desired
- 0001h if source address is to be stored (datagram sockets)
- 22h WORD length of source address
- 24h 110 BYTEs source address
- 92h 1K BYTEs buffer for data to be read
- ---function 000Ah---
- 18h WORD (ret) socket's file handle or FFFFh on error
- 1Ah WORD address family (0001h,0002h)
- 1Ch WORD socket type
- 1Eh WORD protocol
- ---function 000Bh---
- 18h WORD (ret) 0001h if ??? or FFFFh on error
- 1Ah WORD socket's file handle
- 1Eh WORD (call) ???
- ---function 000Ch---
- 18h 128 BYTEs ASCIZ hostname (special case if empty string or "unix")
- 98h ??? (ret) packed 'hostent' structure
- A2h ??? (ret) ???
- ---function 000Dh---
- 18h WORD (ret) number of bytes actually written or FFFFh on error
- 1Ah WORD socket's file handle
- 1Ch WORD number of bytes to write
- 1Eh WORD number of bytes to follow in subsequent writes???
- 20h WORD flags
- 22h WORD 0000h if no destination specified, 0001h if destination present
- 24h WORD 0001h if broadcast message???, 0000h if not
- (ignored if no destination specified)
- 26h WORD length of destination address
- 28h 110 BYTEs destination address
- 96h 1K BYTEs buffer containing data to be written
- ---function 000Eh---
- no additional fields
- ---function 000Fh---
- 18h DWORD (ret) DESQview task handle of calling process
- ---function 0010h---
- 18h DWORD (ret) current time
- 1Ch DWORD (ret) ???
- ---function 0011h---
- 18h WORD (ret) status: 0000h if successful, FFFFh on error
- 1Ah WORD socket's file handle
- 1Ch WORD length of name
- 1Eh N BYTEs buffer for socket name
- ---function 0012h---
- 18h WORD (ret) status: 0000h if successful, FFFFh on error
- 1Ah WORD socket's file handle
- 1Ch WORD maximum backlog of pending connections allowed on socket
- ---function 0013h---
- 18h WORD (ret) file handle for new connection or FFFFh on error
- 1Ah WORD listen()ing socket's file handle
- 1Ch WORD (call) length of buffer for connecting entity's address
- (ret) actual length of address
- 1Eh N BYTEs buffer for connecting entity's address (110 bytes???)
- ---function 0014h---
- 18h WORD (ret) socket's file handle or FFFFh on error
- 1Ah 4 BYTEs (ret) ???
- 1Eh WORD (ret) ???
- 20h WORD (ret) ???
- 22h 256 BYTEs ASCIZ X display name
- 122h ???
- ---function 0015h---
- 18h WORD (call) type of address??? (test for 0001h seen)
- 1Ah WORD (call) length of buffer for host address
- 1Ch 110 BYTEs buffer containing ASCIZ host address
- 8Ah WORD (ret) offset of official host name
- 8Ch WORD (ret) offset of alias list???
- 8Eh WORD (ret) address type???
- 90h WORD (ret) length of an address in bytes???
- 92h WORD (ret) offset of address???
- 9Ah N BYTEs (ret) buffer for hostname, alias list, and host address
- ---function 0016h---
- 18h ??? buffer for ASCIZ protocol name
- 98h ???
- ---function 0017h---
- 18h WORD (call) protocol number
- 1Ah WORD (ret) ??? or 0001h
- ---function 0018h---
- 18h 128 BYTEs buffer containing ASCIZ ???
- 98h 128 BYTEs buffer containing ASCIZ ???
- 118h WORD (ret) ???
- ---function 0019h---
- 18h WORD port number
- 1Ah 128 BYTEs (call) ASCIZ host name
- (ret) packed servent strctures???
- 9Ah WORD (ret) ???
- ---function 001Ah---
- 18h WORD (ret) 0000h if successful, FFFFh on error
- 1Ah WORD socket's file handle
- 1Ch WORD (call) length of buffer for socket name
- (ret) actual length of socket name
- 1Eh N BYTEs buffer for socket name
- ---function 001Bh---
- 18h WORD (ret) status: 0000h if successful, FFFFh on error
- 1Ah WORD socket's file handle
- 1Ch WORD (call) size of buffer for name
- (ret) actual size of name
- 1Eh N BYTEs buffer for peer's name
- ---function 001Ch---
- 18h WORD (ret) status: 0000h if successful, FFFFh on error
- 1Ah WORD direction: 0000h to get, 0001h to set
- 1Ch WORD socket's file handle
- 1Eh WORD option level
- 20h WORD option name
- 22h WORD (call) length of buffer for option value
- (ret) actual length of option value
- 24h N BYTEs buffer for option value
- ---function 001Dh---
- no additional fields
- ---function 001Eh---
- 18h WORD (ret) status: 0000h ??? or 0001h ???
- 1Ah WORD file handle which may or may not be a socket
- ---function 001Fh---
- 18h WORD (ret) file handle or FFFFh on error
- 1Ah DWORD (call) pointer to Socket Context Record (see #0503) of a
- previously detached socket
- ---function 0020h---
- 18h WORD (ret) status: 0000h if successful or FFFFh on error
- 1Ah WORD socket's file handle
- 1Ch DWORD (ret) pointer to Socket Context Record (see #0503) for
- the file handle
- ---function 0021h---
- 18h 64 BYTEs buffer for DESQview startup directory (see AX=DE25h)
- ---function 0022h---
- 18h DWORD (ret) task handle of new application
- 1Ch WORD size of .DVP data
- 1Eh 129 BYTEs ASCIZ ???
- 9Fh N BYTEs .DVP data (see #0353 at AX=102Ch)
- ---function 0023h---
- 18h WORD (ret) ??? or FFFFh on error
- 1Ah WORD socket's file handle???
- ---function 0024h---
- 18h WORD (ret) DOS error code (see #1366 at INT 21/AH=59h/BX=0000h)
- 0000h if successful
- 1Ah 129 BYTEs ASCIZ filename/pathname
- 11Bh 129 BYTEs ASCIZ canonicalized filename/pathname (see INT 21/AH=60h)
- ---function 0025h---
- 18h WORD value of AX
- 1Ah WORD value of BX
- 1Ch WORD (call) value of CX for call if AH value other than 12h
- (call) number of stack parameters if AH value is 12h
- (ret) returned CX for calls other than INT 15/AH=12h
- 1Eh WORD value of DX
- 20h WORD value of DI
- 22h WORD value of SI
- 24h WORD value of DS
- 26h WORD value of ES
- 28h WORD (ret) value of FLAGS after call
- 2Ah N DWORDs (call) stack parameters for INT 15/AH=12h call
- (ret) stack results from INT 15/AH=12h call
- ---function 0026h---
- 18h WORD (call) Network Manager subfunction (see #0483)
- (ret) status??? (0000h on error)
- 1Ah WORD (call) size of parameter data
- (ret) size of returned data
- 1Ch N BYTEs (call) parameter data required by call (see #0484,#0485,#0501)
- (ret) result data (see #0494,#0495,#0500)
- ---function 0027h---
- 18h WORD (ret) status: 0000h if successful, FFFFh on error
- 1Ah WORD socket's file handle
- ---functions 0028h,0029h---
- 18h WORD (call) file handle for which to set priority low/high
- FFFFh to change calling task's priority
- ---function 002Ah---
- no additional fields
-
- (Table 0483)
- Values for DESQview/X Network Manager subfunction:
- 0004h "so_exit"???
- 0005h "gethostbyname"
- 0006h "gethostname"
- 0009h "socket"
- 000Dh "gethostbyaddr"
- 000Fh "getprotobyname"
- 0010h get protocol name for protocol number
- 0011h "getservbyname"
- 0012h "getservbyport" (see #0487)
- 0013h "getsockname"??? (see #0488)
- 0016h "shutdown" (see #0489)
- 0017h kill Network Manager
- 0018h "getpeername"??? (see #0490)
- 0019h ??? (called by socket function 0000h) (see #0491)
- 001Ah ??? (see #0492)
- 001Bh "so_linkup" (see #0493)
- 001Dh "getnetstatus" get network services (see #0494)
- 001Fh "getpwuid"
- 0020h "getpwnam"
- 0021h "getpwvar"
- 0022h "crypt"
- 0023h "so_unlink"
- 0024h "getlogin" (see #0495)
- 0028h "sethostent"
- 0029h "gethostent"
- 002Ah "soaddhost"
- 002Bh "soupdatehost"
- 002Ch "sodeletehost"
- 002Dh "setservent"
- 002Eh "getservent"
- 002Fh "setpwent"
- 0030h "getpwent" (see #0496)
- 0031h "sethostpath" (see #0497)
- 0032h "endservent"
- 0033h "endhostent"
- 0034h "getnettype" get IP network number (see #0498)
- 0035h ??? (pops up Network Manager window)
- 0037h "getnettimeout" (see #0499)
- 0038h get machine name and IP address (see #0500)
- 0039h "getuid" (see #0501)
- ---DV/X v2.0+ ---
- 0041h "deletepwnam"
- 0045h "renamepw"
-
- Format of Function 0026h/Subfunction 000Fh data:
- Offset Size Description (Table 0484)
- 00h 8 BYTEs (ret) ???
-
- Format of Function 0026h/Subfunction 0010h data:
- Offset Size Description (Table 0485)
- 00h 2 BYTEs (ret) ???
- 02h WORD (ret) protocol number
- 04h WORD (call) protocol number for which to get name
- 06h WORD (ret) ???
- 08h var (ret) ASCIZ protocol name
- N var (ret) ASCIZ protocol name
-
- Format of Function 0026h/Subfunction 0011h data:
- Offset Size Description (Table 0486)
- 00h 8 BYTEs ???
- 08h var (ret) ASCIZ protocol name
- var (ret) ASCIZ ??? name
- var (ret) ASCIZ ??? name
-
- Format of Function 0026h/Subfunction 0012h data:
- Offset Size Description (Table 0487)
- 00h 8 BYTEs (ret) ???
-
- Format of Function 0026h/Subfunction 0013h data:
- Offset Size Description (Table 0488)
- 00h 116 BYTEs (ret) ???
-
- Format of Function 0026h/Subfunction 0016h ("shutdown") data:
- Offset Size Description (Table 0489)
- 00h WORD (ret) shutdown status (0000h successful, FFFFh error)
- 02h 4 BYTEs (ret) ???
- 04h WORD (call) socket handle
- 06*h WORD (call) what (0 = receives, 1 = sends, 2 = both)
-
- Format of Function 0026h/Subfunction 0018h data:
- Offset Size Description (Table 0490)
- 00h 116 BYTEs (ret) ???
-
- Format of Function 0026h/Subfunction 0019h data:
- Offset Size Description (Table 0491)
- 00h 4 BYTEs (ret) ???
- 04h DWORD (ret) task handle of ???
-
- Format of Function 0026h/Subfunction 001Ah data:
- Offset Size Description (Table 0492)
- 00h 38 BYTEs (ret) ???
-
- Format of Function 0026h/Subfunction 001Bh data:
- Offset Size Description (Table 0493)
- 00h 10 BYTEs (ret) ???
-
- Format of Function 0026h/Subfunction 001Dh return data [array]:
- Offset Size Description (Table 0494)
- 00h WORD ??? or FFFFh if end of array
- 02h 7 BYTEs ???
- 09h 27 BYTEs ASCIZ name of service
-
- Format of Function 0026h/Subfunction 0024h return data:
- Offset Size Description (Table 0495)
- 00h var ASCIZ username
-
- Format of Function 0026h/Subfunction 0030h data:
- Offset Size Description (Table 0496)
- 00h WORD (call) UID or 0000h for current user
- (ret) ???
- 02h WORD (ret) UID
- 04h 6 BYTEs (ret) ???
- 0Ah var (ret) ASCIZ username
- var (ret) ASCIZ encrypted password
- var (ret) ASCIZ initial ("home") directory
-
- Format of Function 0026h/Subfunction 0031h ("sethostpath") data:
- Offset Size Description (Table 0497)
- 00h 4 BYTEs ???
- 04h 144 BYTEs ASCIZ ???
-
- Format of Function 0026h/Subfunction 0034h data:
- Offset Size Description (Table 0498)
- 00h 1-3 BYTEs IP network number of caller's machine (low byte first)
-
- Format of Function 0026h/Subfunction 0037h ("getnettimeout") return data:
- Offset Size Description (Table 0499)
- 00h WORD (ret) timeout
- 02h 2 BYTEs (ret) ???
-
- Format of Function 0026h/Subfunction 0038h return data:
- Offset Size Description (Table 0500)
- 00h BYTE ???
- 01h 4 BYTEs IP address
- 05h var ASCIZ machine name
- ???
-
- Format of Function 0026h/Subfunction 0039h ("getuid") return data:
- Offset Size Description (Table 0501)
- 00h WORD user ID
- 02h 2 BYTEs ???
- SeeAlso: #0497,#0500
-
- (Table 0502)
- Values for DESQview/X socket error code:
- 0000h successful
- 0009h "BADF" bad file handle
- 000Ch "ENOMEM" out of memory
- 000Eh "EFAULT" bad address
- 0016h "EINVAL" invalid argument
- 0018h "EMFILE" too many open files
- 0020h "EPIPE" ??? broken pipe
- 0023h "EWOULDBLOCK" operation cannot be completed at this time
- 0024h "EINPROGRESS" operation now in progress
- 0026h "ENOTSOCK" socket invalid
- 0028h "EMSGSIZE" message too long to send atomically
- 002Ch "ESOCKTNOSUPPORT" socket type not supported
- 002Fh "EAFNOSUPPORT" address family not supp. by protocol fam.
- 0031h "EDOM" argument too large
- 0038h "EISCONN" socket is already connected
- 0039h "ENOTCONN" socket is not connected
-
- Format of DESQview/X Socket Context Record:
- Offset Size Description (Table 0503)
- 00h DWORD pointer to next Socket Context Record, 0000h:0000h if last
- 04h WORD SFT index for socket, 00FFh if not connected, FFFFh if detached
- 06h WORD PSP segment of owner or 0000h
- 08h WORD mapping context of owning window (see #0342 at AX=1016h)
- 0Ah 2 BYTEs ???
- 0Ch WORD address family
- 0Eh WORD socket type
- 10h WORD protocol
- 12h WORD socket state
- 0001h created
- 0002h bound
- 0003h listening???
- 0005h connected
- 14h DWORD timer object handle
- 18h DWORD object handle (mailbox???)
- 1Ch DWORD object handle of parent of above object or 0000h:0000h
- 20h DWORD pointer to ??? or 0000h
- 24h 6 BYTEs ???
- 2Ah WORD file handle for socket or FFFFh
- 2Ch 2 BYTEs ???
- 2Eh WORD nonzero if socket nonblocking
- ---network connections only---
- 30h 2 BYTEs ???
- 32h WORD ???
- 34h 4 BYTEs (big-endian) IP address of remote
- 38h 6 BYTEs ???
- --------Q-15DE2F-----------------------------
- INT 15 - DESQview v2.50+ - "VIDEONOTIFY" - HAS DIRECT WINDOW BEEN ACTIVE?
- AX = DE2Fh
- Return: BX = status
- 0001h keyboard focus has been given to a direct window since the
- last call
- 0000h if not
- Notes: DESQview 2.50-2.53 are distributed as part of DESQview/X v1.00-1.10.
- Quarterdeck stated that this call would not be available under future
- versions of DESQview Classic, but it is still present in v2.60
- --------Q-15DE30-----------------------------
- INT 15 - DESQview v2.50+ - "GETDVXVERSION" - GET DESQview/X VERSION
- AX = DE30h
- Return: BX = version (BH=major, BL=minor) or 0000h if not DESQview/X
- Notes: DESQview 2.50-2.53 are distributed as part of DESQview/X v1.00-1.10.
- you must first check the DESQview version to verify that it is 2.50 or
- greater
- SeeAlso: INT 21/AH=2Bh/CX=4445h
- --------Q-15DE31-----------------------------
- INT 15 - DESQview/X v1.10 - ???
- AX = DE31h
- CX = ???
- 0000h ???
- nonzero ???
- ???
- Return: ???
- --------b-15DF-------------------------------
- INT 15 - Juko UNIQUE UX BIOS - TURBO MODE CONTROL
- AH = DFh
- AL = function
- 00h turn on Turbo mode
- 01h turn off Turbo mode
- 02h set Turbo mode according to hardware switch
- SeeAlso: INT 13/AX=FFFFh
- --------b-15E00F-----------------------------
- INT 15 - Compaq Systempro - MULTIPROCESSOR DISPATCH
- AX = E00Fh
- ES:BX -> start of 2nd processor's execution
- Return: AL = status
- 0Fh successful
- 00h failure
- SeeAlso: AX=E10Eh,AX=E200h
- --------b-15E10E-----------------------------
- INT 15 - Compaq Systempro - MULTIPROCESSOR END-OF-DISPATCH
- AX = E10Eh
- ES:BX -> start of 2nd processor's execution
- Return: AL = status
- 0Fh successful (halted)
- 00h failure (not halted)
- SeeAlso: AX=E00Fh,AX=E200h
- --------b-15E200-----------------------------
- INT 15 - Compaq Systempro - MULTIPROCESSOR AVAILABLE
- AX = E200h
- Return: AX bit 15 set if 2nd processor available
- SeeAlso: AX=E00Fh,AX=E10Eh
- --------b-15E4-------------------------------
- INT 15 - Tandy??? - ???
- AH = E4h
- AL = subfunction
- 21h, 89h, 8Ah, 8Bh called by 386MAX v6.01
- DL = ???
- Return: DL = 00h if successful???
- Note: the section of code in 386MAX which calls these functions also checks
- whether the ROM BIOS has both Tandy and Phoenix Technologies
- signatures if these calls fail; the Tandy 1000SL/TL BIOS does not
- support this function, however, returning the usual CF set/AH=86h for
- "unsupported function".
- --------b-15E4-------------------------------
- INT 15 - Compaq ROM BIOS 03/08/93 and newer - ???
- AH = E4h
- AL = subfunction
- 00h get ???
- Return: CF clear
- AH = 00h
- CX = 0000h
- BX = ??? (read from [XBDA:0094h])
- 01h,02h unsupported by this ROM version
- Return: CF set, AH = 86h
- 80h,90h,A0h,B0h,C0h,D0h,E0h,F0h set ???
- Return: CF clear
- AH = 00h
- CX = 0000h
- BX = ???
- 81h,91h,A1h,B1h,C1h,D1h,E1h,F1h unsupported by 3/8/93&4/8/93 ROMs
- Return: CF set, AH = 86h
- Notes: functions 80h/90h/etc. are not supported by the 4/8/93 EISA System ROM
- these functions are not supported by the 7/26/93 LTE Lite 386 ROM
- --------b-15E800-----------------------------
- INT 15 - Compaq Contura - GET ???
- AX = E800h
- Return: AX = 0000h
- BH = 00h
- BL = ??? (read from port 0C7Ch)
- CH = ???
- CL = ???
- DX = 0000h
- Note: also supported by 3/8/93 DESKPRO/i and 7/26/93 LTE Lite 386 ROM BIOS
- --------b-15E800-----------------------------
- INT 15 - Compaq Contura Aero, Contura 400 - GET SYSTEM MODEL CODE???
- AX = E800h
- BX = ??? (0000h)
- Return: CF clear if successful
- BH = 02h
- BL = submodel??? (0Ch,0Dh,34h,38h,40h,44h,48h,64h,68h)
- CF set on error
- others???
- Notes: used by Compaq's SOFTPAQ number 0937 EPPBIOS.SYS to determine whether
- the Enhanced Parallel Port expected by that driver is available
- used by Compaq's SOFTPAW number 0856 VOLCTRL.EXE to determine whether
- volume control hardware expected by that driver is available
- --------b-15E800-----------------------------
- INT 15 - Compaq Prolinea - GET ???
- AX = E800h
- BX = ??? (1369h)
- Return: BH = 01h
- BL = ???
- others???
- Note: used by Compaq's SOFTPAQ number 0718 INT10_04.SYS to determine whether
- the fix that driver applies is required (will not install if BX on
- return is other than 010Eh or 010Fh)
- SeeAlso: AX=E802h
- --------b-15E801-----------------------------
- INT 15 - Phoenix BIOS v4.0 - GET MEMORY SIZE FOR >64M CONFIGURATIONS
- AX = E801h
- Return: CF clear if successful
- AX = extended memory between 1M and 16M, in K (max 3C00h = 15MB)
- BX = extended memory above 16M, in 64K blocks
- CX = configured memory 1M to 16M, in K
- DX = configured memory above 16M, in 64K blocks
- CF set on error
- Notes: supported by the A03 level (6/14/94) and later XPS P90 BIOSes, as well
- as the Compaq Contura, 3/8/93 DESKPRO/i, and 7/26/93 LTE Lite 386 ROM
- BIOS
- supported by AMI BIOSes dated 8/23/94 or later
- this interface is used by Windows NT 3.1, OS/2 v2.11/2.20, and is
- used as a fall-back by newer versions if AX=E820h is not supported
- SeeAlso: AH=8Ah"Phoenix",AX=E802h,AX=E820h,AX=E881h"Phoenix"
- --------b-15E802-----------------------------
- INT 15 - Compaq Contura - GET ???
- AX = E802h
- Return: CF clear
- AX = 0000h
- BX = ???
- CX = 0000h
- Note: this function is also supported by the LTE Lite 25c, 25E, and 486; not
- supported by LTE Lite 20 and 25.
- SeeAlso: AX=E801h"Phoenix"
- --------b-15E820-----------------------------
- INT 15 - newer BIOSes - GET SYSTEM MEMORY MAP
- AX = E820h
- EAX = 0000E820h
- EDX = 534D4150h ('SMAP')
- EBX = continuation value or 00000000h to start at beginning of map
- ECX = size of buffer for result, in bytes (should be >= 20 bytes)
- ES:DI -> buffer for result (see #0505)
- Return: CF clear if successful
- EAX = 534D4150h ('SMAP')
- ES:DI buffer filled
- EBX = next offset from which to copy or 00000000h if all done
- ECX = actual length returned in bytes
- CF set on error
- AH = error code (86h) (see #0422 at INT 15/AH=80h)
- Notes: originally introduced with the Phoenix BIOS v4.0, this function is
- now supported by most newer BIOSes, since various versions of Windows
- call it to find out about the system memory
- a maximum of 20 bytes will be transferred at one time, even if ECX is
- higher; some BIOSes (e.g. Award Modular BIOS v4.50PG) ignore the
- value of ECX on entry, and always copy 20 bytes
- some BIOSes expect the high word of EAX to be clear on entry, i.e.
- EAX=0000E820h
- if this function is not supported, an application should fall back
- to AX=E802h, AX=E801h, and then AH=88h
- the BIOS is permitted to return a nonzero continuation value in EBX
- and indicate that the end of the list has already been reached by
- returning with CF set on the next iteration
- this function will return base memory and ISA/PCI memory contiguous
- with base memory as normal memory ranges; it will indicate
- chipset-defined address holes which are not in use and motherboard
- memory-mapped devices, and all occurrences of the system BIOS as
- reserved; standard PC address ranges will not be reported
- SeeAlso: AH=C7h,AX=E801h"Phoenix",AX=E881h,MEM xxxxh:xxx0h"ACPI"
-
- Format of Phoenix BIOS system memory map address range descriptor:
- Offset Size Description (Table 0504)
- 00h QWORD base address
- 08h QWORD length in bytes
- 10h DWORD type of address range (see #0505)
-
- (Table 0505)
- Values for System Memory Map address type:
- 01h memory, available to OS
- 02h reserved, not available (e.g. system ROM, memory-mapped device)
- 03h ACPI Reclaim Memory (usable by OS after reading ACPI tables)
- 04h ACPI NVS Memory (OS is required to save this memory between NVS
- sessions)
- other not defined yet -- treat as Reserved
- SeeAlso: #0504
- --------b-15E881-----------------------------
- INT 15 - Phoenix BIOS v4.0 - GET MEMORY SIZE FOR >64M CONFIGURATIONS (32-bit)
- AX = E881h
- Return: CF clear if successful
- EAX = extended memory between 1M and 16M, in K (max 3C00h = 15MB)
- EBX = extended memory above 16M, in 64K blocks
- ECX = configured memory 1M to 16M, in K
- EDX = configured memory above 16M, in 64K blocks
- CF set on error
- Notes: supported by AMI BIOSes dated 8/23/94 or later
- this interface is used by Windows NT 3.1, OS/2 v2.11/2.20, and is
- used as a fall-back by newer versions if AX=E820h is not supported
- SeeAlso: AX=E801h"Phoenix",AX=E820h"Phoenix"
- --------m-15F200CX454D-----------------------
- INT 15 - Tandon memory mapper - Tandon MAPPER HARDWARE INITIALIZATION CHECK ???
- AX = F200h
- CX = 454Dh
- Return: CF clear if hardware already initialised
- BX = upper RAM areas in use
- bit 0: C000-C3FF
- bit 1: C400-C7FF
- ...
- bit 11: EC00-EFFF
- CF set if hardware not initialised yet
- --------B-1600-------------------------------
- INT 16 - KEYBOARD - GET KEYSTROKE
- AH = 00h
- Return: AH = BIOS scan code
- AL = ASCII character
- Notes: on extended keyboards, this function discards any extended keystrokes,
- returning only when a non-extended keystroke is available
- the BIOS scan code is usually, but not always, the same as the hardware
- scan code processed by INT 09. It is the same for ASCII keystrokes
- and most unshifted special keys (F-keys, arrow keys, etc.), but
- differs for shifted special keys
- some (older) clone BIOSes do not discard extended keystrokes and manage
- function AH=00h and AH=10h the same
- the K3PLUS v6.00+ INT 16 BIOS replacement doesn't discard extended
- keystrokes (same as with functions 10h and 20h), but will always
- translate prefix E0h to 00h. This allows old programs to use extended
- keystrokes and should not cause compatibility problems
- SeeAlso: AH=01h,AH=05h,AH=10h,AH=20h,AX=AF4Dh"K3PLUS",INT 18/AH=00h
- --------B-1601-------------------------------
- INT 16 - KEYBOARD - CHECK FOR KEYSTROKE
- AH = 01h
- Return: ZF set if no keystroke available
- ZF clear if keystroke available
- AH = BIOS scan code
- AL = ASCII character
- Note: if a keystroke is present, it is not removed from the keyboard buffer;
- however, any extended keystrokes which are not compatible with 83/84-
- key keyboards are removed by IBM and most fully-compatible BIOSes in
- the process of checking whether a non-extended keystroke is available
- some (older) clone BIOSes do not discard extended keystrokes and manage
- function AH=00h and AH=10h the same
- the K3PLUS v6.00+ INT 16 BIOS replacement doesn't discard extended
- keystrokes (same as with functions 10h and 20h), but will always
- translate prefix E0h to 00h. This allows old programs to use extended
- keystrokes and should not cause compatibility problems
- SeeAlso: AH=00h,AH=11h,AH=21h,INT 18/AH=01h
- --------B-1602-------------------------------
- INT 16 - KEYBOARD - GET SHIFT FLAGS
- AH = 02h
- Return: AL = shift flags (see #0506)
- AH destroyed by many BIOSes
- SeeAlso: AH=12h,AH=22h,INT 17/AH=0Dh,INT 18/AH=02h,MEM 0040h:0017h
-
- Bitfields for keyboard shift flags:
- Bit(s) Description (Table 0506)
- 7 Insert active
- 6 CapsLock active
- 5 NumLock active
- 4 ScrollLock active
- 3 Alt key pressed (either Alt on 101/102-key keyboards)
- 2 Ctrl key pressed (either Ctrl on 101/102-key keyboards)
- 1 left shift key pressed
- 0 right shift key pressed
- SeeAlso: #0511,#3414,MEM 0040h:0017h,#M010
- --------B-1603-------------------------------
- INT 16 - KEYBOARD - SET TYPEMATIC RATE AND DELAY
- AH = 03h
- AL = subfunction
- 00h set default delay and rate (PCjr and some PS/2)
- 01h increase delay before repeat (PCjr)
- 02h decrease repeat rate by factor of 2 (PCjr)
- 03h increase delay and decrease repeat rate (PCjr)
- 04h turn off typematic repeat (PCjr and some PS/2)
- 05h set repeat rate and delay (AT,PS)
- BH = delay value (00h = 250ms to 03h = 1000ms)
- BL = repeat rate (00h=30/sec to 0Ch=10/sec [def] to 1Fh=2/sec)
- 06h get current typematic rate and delay (newer PS/2s)
- Return: BL = repeat rate (above)
- BH = delay (above)
- Return: AH destroyed by many BIOSes
- Note: use INT 16/AH=09h to determine whether some of the subfunctions are
- supported
- SeeAlso: INT 16/AH=09h,AH=29h"HUNTER",AH=2Ah"HUNTER"
- --------B-1604-------------------------------
- INT 16 - KEYBOARD - SET KEYCLICK (PCjr only)
- AH = 04h
- AL = keyclick state
- 00h off
- 01h on
- Return: AH destroyed by many BIOSes
- SeeAlso: AH=03h,AH=04h"K3PLUS"
- --------b-1604-------------------------------
- INT 16 - Tandy 2000 - KEYBOARD - FLUSH KEYBOARD BUFFER
- AH = 04h
- Note: this interrupt is identical to INT 51 on the Tandy 2000
- SeeAlso: INT 16/AH=00h,INT 16/AH=02h,INT 16/AH=05h"Tandy 2000"
- SeeAlso: INT 51"Tandy 2000"
- --------K-1604-------------------------------
- INT 16 - K3PLUS v6.22+ - SET KEYCLICK
- AH = 04h
- AL = keyclick state
- 00h keyclick off, leave loudness setting unchanged
- 01h keyclick on, leave loudness setting unchanged
- else
- bit 0: keyclick enabled if set
- bits 7-1: new keyclick loudness (non-zero)
- Return: AH destroyed by many BIOSes
- Note: Applications which try to set a new loudness, but are unsure of the
- results of other INT 16/AH=04h implementations, should set the new
- loudness first, and then call this function again with AL=01h or
- AL=00h
- SeeAlso: AH=03h,AH=04h"KEYBOARD",AX=AF4Dh
- --------B-1605-------------------------------
- INT 16 - KEYBOARD - STORE KEYSTROKE IN KEYBOARD BUFFER (AT/PS w enh keybd only)
- AH = 05h
- CH = BIOS scan code
- CL = ASCII character
- Return: AL = status
- 00h if successful
- 01h if keyboard buffer full
- AH destroyed by many BIOSes
- Notes: under DESQview, a number of "keystrokes" invoke specific
- DESQview-related actions when they are read from the keyboard
- buffer (see #0507)
- similarly, some "keystrokes" invoke special functions on the HP 100LX
- and HP 200LX (see #0508)
- SeeAlso: AH=00h,AH=25h"K3",AH=71h,AX=AF4Dh,AH=FFh,INT 15/AX=DE10h
- SeeAlso: MEM 0040h:001Eh
-
- (Table 0507)
- Values for pseudo-keystrokes for DESQview:
- 38FBh or FB00h switch to next window (only if main menu already popped up)
- 38FCh or FC00h pop up DESQview main menu
- 38FEh or FE00h close the current window
- 38FFh or FF00h pop up DESQview learn menu
-
- (Table 0508)
- Values for pseudo-keystrokes for HP 100LX/200LX:
- EE00h pop up topcard display and set other system manager applications
- into sleep mode
- --------B-1605-------------------------------
- INT 16 - KEYBOARD - SELECT KEYBOARD LAYOUT (PCjr only)
- AH = 05h
- AL = function
- 01h set keyboard layout to French
- 02h set keyboard layout to German
- 03h set keyboard layout to Italian
- 04h set keyboard layout to Spanish
- 05h set keyboard layout to UK
- 80h check if function supported
- Return: AL <> 80h if supported
- Return: ???
- AH destroyed by many BIOSes
- Note: this function is called by the DOS 3.2 KEYBxx.COM
- SeeAlso: AH=92h,AH=A2h,AX=AF4Dh
- --------b-1605-------------------------------
- INT 16 - Tandy 2000 - KEYBOARD - RESET KEYBOARD
- AH = 05h
- Desc: reset the keyboard and flush the keyboard buffer
- Note: this interrupt is identical to INT 51 on the Tandy 2000
- SeeAlso: INT 16/AH=00h,INT 16/AH=02h,INT 16/AH=03h,INT 51"Tandy 2000"
- --------B-1609-------------------------------
- INT 16 - KEYBOARD - GET KEYBOARD FUNCTIONALITY
- AH = 09h
- Return: AL = supported keyboard functions (see #0509)
- AH destroyed by many BIOSes
- Note: this function is only available if bit 6 of the second feature byte
- returned by INT 15/AH=C0h is set (see #0433)
- SeeAlso: AH=03h,AH=0Ah,AH=10h,AH=11h,AH=12h,AH=20h,AH=21h,AH=22h,INT 15/AH=C0h
-
- Bitfields for supported keyboard functions:
- Bit(s) Description (Table 0509)
- 7 reserved
- 6 INT 16/AH=20h-22h supported (122-key keyboard support)
- 5 INT 16/AH=10h-12h supported (enhanced keyboard support)
- 4 INT 16/AH=0Ah supported
- 3 INT 16/AX=0306h supported
- 2 INT 16/AX=0305h supported
- 1 INT 16/AX=0304h supported
- 0 INT 16/AX=0300h supported
- SeeAlso: #0435
- --------K-160A-------------------------------
- INT 16 - KEYBOARD - GET KEYBOARD ID
- AH = 0Ah
- Return: BX = keyboard ID (see #0510)
- AH destroyed by many BIOSes
- Notes: check return value from AH=09h to determine whether this function is
- supported
- this function is also supported by the K3PLUS v6.00+ INT 16 BIOS
- replacement
- SeeAlso: AH=09h,AX=AF4Dh,MEM 0040h:00C2h"AMI"
-
- (Table 0510)
- Values for keyboard ID:
- 0000h no keyboard attached
- 41ABh Japanese "G" keyboard (translate mode)
- MF2 Keyboard (usually in translate mode)
- 54ABh Japanese "P" keyboard (translate mode)
- 83ABh Japanese "G" keyboard (pass-through mode)
- MF2 Keyboard (pass-through mode)
- 84ABh Japanese "P" keyboard (pass-through mode)
- 90ABh old Japanese "G" keyboard
- 91ABh old Japanese "P" keyboard
- 92ABh old Japanese "A" keyboard
- --------B-1610-------------------------------
- INT 16 - KEYBOARD - GET ENHANCED KEYSTROKE (enhanced kbd support only)
- AH = 10h
- Return: AH = BIOS scan code
- AL = ASCII character
- Notes: if no keystroke is available, this function waits until one is placed
- in the keyboard buffer
- the BIOS scan code is usually, but not always, the same as the hardware
- scan code processed by INT 09. It is the same for ASCII keystrokes
- and most unshifted special keys (F-keys, arrow keys, etc.), but
- differs for shifted special keys.
- unlike AH=00h, this function does not discard extended keystrokes
- INT 16/AH=09h can be used to determine whether this function is
- supported, but only on later model PS/2s
- SeeAlso: AH=00h,AH=09h,AH=11h,AH=20h,MEM 0040h:0019h,MEM 0040h:001Eh
- --------B-1611-------------------------------
- INT 16 - KEYBOARD - CHECK FOR ENHANCED KEYSTROKE (enh kbd support only)
- AH = 11h
- Return: ZF set if no keystroke available
- ZF clear if keystroke available
- AH = BIOS scan code
- AL = ASCII character
- Notes: if a keystroke is available, it is not removed from the keyboard buffer
- unlike AH=01h, this function does not discard extended keystrokes
- some versions of the IBM BIOS Technical Reference erroneously report
- that CF is returned instead of ZF
- INT 16/AH=09h can be used to determine whether this function is
- supported, but only on later model PS/2s
- SeeAlso: AH=01h,AH=09h,AH=10h,AH=21h
- --------B-1612-------------------------------
- INT 16 - KEYBOARD - GET EXTENDED SHIFT STATES (enh kbd support only)
- AH = 12h
- Return: AL = shift flags 1 (same as returned by AH=02h) (see #0511)
- AH = shift flags 2 (see #0512)
- Notes: AL bit 3 set only for left Alt key on many machines
- AH bits 7 through 4 always clear on a Compaq SLT/286
- INT 16/AH=09h can be used to determine whether this function is
- supported, but only on later model PS/2s
- many BIOSes (including at least some versions of Phoenix and AMI) will
- destroy AH on return from functions higher than AH=12h, returning
- 12h less than was in AH on entry (due to a chain of DEC/JZ
- instructions)
- SeeAlso: AH=02h,AH=09h,AH=22h,AH=51h,INT 17/AH=0Dh,MEM 0040h:0017h
-
- Bitfields for keyboard shift flags 1:
- Bit(s) Description (Table 0511)
- 7 Insert active
- 6 CapsLock active
- 5 NumLock active
- 4 ScrollLock active
- 3 Alt key pressed (either Alt on 101/102-key keyboards)
- 2 Ctrl key pressed (either Ctrl on 101/102-key keyboards)
- 1 left shift key pressed
- 0 right shift key pressed
- SeeAlso: #0506,#0512,MEM 0040h:0017h,#M010
-
- Bitfields for keyboard shift flags 2:
- Bit(s) Description (Table 0512)
- 7 SysReq key pressed (SysReq is often labeled SysRq)
- 6 CapsLock pressed
- 5 NumLock pressed
- 4 ScrollLock pressed
- 3 right Alt key pressed
- 2 right Ctrl key pressed
- 1 left Alt key pressed
- 0 left Ctrl key pressed
- SeeAlso: #0511,MEM 0040h:0018h,#M011
- --------J-1613-------------------------------
- INT 16 - DOS/V - DOUBLE-BYTE CHARACTER SET SHIFT CONTROL
- AH = 13h
- AL = function
- 00h set shift status
- DX = shift status (see #0513), must preserve internal status
- bits
- 01h get shift status
- Return: DX = current shift status (see #0513)
- Note: these functions are supplied by the Japanese Front-End Processor
- SeeAlso: AH=14h,INT 21/AX=6301h
-
- Bitfields for DOS/V shift status:
- Bit(s) Description (Table 0513)
- 0 full-size rather than half-size
- 2-1 character input mode
- 00 alphanumeric, 01 Katakana, 10 Hiragana, 11 unused
- 5-3 internal status
- 6 Romaji enabled
- 7 Katakana to Kanji conversion enabled
- 15-8 internal status
- --------J-1614-------------------------------
- INT 16 - DOS/V - SHIFT STATUS DISPLAY CONTROL
- AH = 14h
- AL = function
- 00h enable display
- 01h disable display
- 02h get display state
- Return: AL = current state (00h enabled, 01h disabled)
- Desc: control the screen-bottom shift status row(s) for the Japanese
- Front-End Processor
- SeeAlso: AH=13h,INT 10/AH=19h,INT 10/AH=1Dh
- --------B-1620-------------------------------
- INT 16 - KEYBOARD - GET 122-KEY KEYSTROKE (122-key kbd support only)
- AH = 20h
- Return: AH = BIOS scan code (see AH=10h)
- AL = ASCII character
- Note: use AH=09h to determine whether this function is supported
- SeeAlso: AH=00h,AH=09h,AH=10h,AH=21h,AH=22h
- --------b-1620------------------------------------
- INT 16 - HUNTER 16 - SET TEMPORARY SHIFT
- AH = 20h
- AL = shift status (see #0514)
- Notes: the Husky Hunter 16 is an 8088-based ruggedized laptop. Other family
- members are the Husky Hunter, Husky Hunter 16/80, and Husky Hawk.
- the user can override the specified settings by pressing the keys
-
- Bitfields for HUNTER 16 shift status:
- Bit(s) Description (Table 0514)
- 4 Scroll Lock on
- 5 Num Lock on
- 6 Caps Lock on
- --------K-1620-------------------------------
- INT 16 O - K3 v1.5x, K3PLUS v5.xx - GET EXTENDED BUFFER STATE
- AH = 20h
- Return: AX = K3 version
- ES:BX -> extended keyboard buffer start
- ES:DX -> extended keyboard buffer end
- ES:SI -> next keystroke
- ES:DI -> last keystroke in buffer
- CX = number of keystrokes in buffer
- Program: K3PLUS is an extended keyboard driver by Matthias Paul and Axel C.
- Frinke, originally based on the K3 extended German keyboard driver
- by Martin Gerdes published in c't magazine in 1988
- Note: this function was normally unsupported under K3PLUS v6.00-v6.22 and
- is no longer supported by v6.30+; use AX=AF20h instead
- SeeAlso: AH=25h"K3",AX=AF20h,INT 2F/AX=D44Fh/BX=0000h,INT 2F/AX=ED58h
- --------B-1621-------------------------------
- INT 16 - KEYBOARD - CHECK FOR 122-KEY KEYSTROKE (122-key kbd support only)
- AH = 21h
- Return: ZF set if no keystroke available
- ZF clear if keystroke available
- AH = BIOS scan code
- AL = ASCII character
- Notes: use AH=09h to determine whether this function is supported
- some versions of the IBM BIOS Technical Reference erroneously report
- that CF is returned instead of ZF
- K3PLUS v6.00+ supports this function as an alias of AH=11h
- SeeAlso: AH=01h,AH=09h,AH=11h,AH=20h,AH=21h
- --------b-1621------------------------------------
- INT 16 - HUNTER 16 - CONTROL SHIFT KEYS
- AH = 21h
- AL = shift keys to control (see #0506)
- BL = shift state for disabled keys
- Note: If a bit in AL is set the key is disabled and set to the state of the
- corresponding bit in BL
- SeeAlso: AH=20h"HUNTER",AH=22h"HUNTER"
- --------B-1622-------------------------------
- INT 16 - KEYBOARD - GET 122-KEY SHIFT STATUS (122-key kbd support only)
- AH = 22h
- Return: AL = shift flags 1 (see #0511)
- AH = shift flags 2 (see #0512)
- Notes: use AH=09h to determine whether this function is supported
- K3PLUS v6.00+ supports this function as an alias of AH=12h
- SeeAlso: AH=02h,AH=09h,AH=12h,AH=20h,AH=21h
- --------b-1622------------------------------------
- INT 16 - HUNTER 16 - CONTROL CTRL-ALT-DEL
- AH = 22h
- AL = new Ctrl-Alt-Del state (00h enabled, nonzero disabled)
- BX = 0708h
- CX = 0910h
- DX = 1112h
- Return: AL = 00h if successful
- SeeAlso: AH=21h"HUNTER",AH=23h"HUNTER",AH=2Ah
- --------b-1623------------------------------------
- INT 16 - HUNTER 16 - CONTROL EMERGENCY BREAKOUT
- AH = 23h
- AL = new state of breakout (00h enabled, nonzero disabled)
- BX = 0708h
- CX = 0910h
- DX = 1112h
- Return: AL = 00h if successful
- Desc: Enables or disables the emergency breakout feature, where the
- Hunter 16 at power on checks whether the X and P keys are pressed.
- If so the machine will boot rather than continue the running program
- SeeAlso: AH=22h"HUNTER"
- --------b-1624------------------------------------
- INT 16 - HUNTER 16 - REDEFINE KEY CODES
- AH = 24h
- AL = Matrix Code (see #0515)
- BL = new Key code
- Return: AL = status (00h successful, nonzero failed)
- SeeAlso: AH=2Bh,AH=2Ch
-
- (Table 0515)
- Values for HUNTER 16 Matrix Code:
- Code Key Code Key Code Key
- 00h Esc key 1Eh Space 3Bh L
- 01h 1 21h 0 3Ch ,
- 02h Q 22h - 3Eh Right shift
- 03h Tab 23h ' 42h 8
- 04h Num Lock 24h Keypad 4 43h 7
- 05h \ 25h Enter 44h U
- 08h LShift 26h Keypad 7 45h I
- 09h Ctrl 27h . 46h J
- 0Ah "Paw" key 28h Keypad 1 47h K
- 0Bh 2 29h Keypad 0 48h M
- 0Ch W 2Ch = 49h N
- 0Dh A 2Dh Backspace 4Ah /
- 0Eh S 2Eh Keypad 8 4Dh 6
- 0Fh Z 2Fh Keypad 9 4Eh 5
- 11h Alt 30h Keypad 5 4Fh T
- 16h 4 31h Keypad 6 50h Y
- 17h 3 32h Keypad 2 51h G
- 18h E 33h Keypad 3 52h H
- 19h R 34h Keypad . 53h B
- 1Ah D 37h 9 54h V
- 1Bh F 38h O 55h #
- 1Ch X 39h P 58h Pwr
- 1Dh C 3Ah ; 59h Shift Pwr
- --------b-1625------------------------------------
- INT 16 - HUNTER 16 - RESET KEYBOARD
- AH = 25h
- Return: AL = 00h
- Desc: restores the standard keyboard layout after any remapping
- SeeAlso: AH=24h,AH=2Bh,AH=2Ch
- --------K-1625-------------------------------
- INT 16 O - K3 v1.5x, K3PLUS v5.xx - COPY INTO EXTENDED BUFFER
- AH = 25h
- CX = number of keystrokes to copy
- ES:SI -> buffer containing keystrokes
- Return: CF clear if successful
- CF set on error (i.e. buffer full)
- CX = number of keystrokes NOT transferred
- ES:SI -> first keystroke not transferred
- Note: this function was normally unsupported under K3PLUS v6.00-v6.22 and
- is no longer supported by v6.30+; use AX=AF25h instead
- SeeAlso: AH=05h,AH=20h"K3",AX=AF25h,INT 2F/AX=D44Fh/BX=0001h
- --------b-1626------------------------------------
- INT 16 - HUNTER 16 - CONTROL KEYCLICK
- AH = 26h
- AL = new state of keyclicks (00h disabled, 01h enabled)
- Return: AL = 00h
- SeeAlso: AH=2Ah
- --------b-1627------------------------------------
- INT 16 - HUNTER 16 - CONTROL SCREEN DUMP AREA
- AH = 27h
- AL = what to dump
- 00h whole (virtual) window
- 01h LCD window only
- Return: AL = 00h
- Desc: control whether printscren dumps the whole 80x25 screen or only the
- part displayed in the LCD window
- Note: the Hunter 16 has a 240x64 LCD display which serves as a window into
- a 640x200 virtual screen
- --------b-1629------------------------------------
- INT 16 - HUNTER 16 - GET KEY REPEAT
- AH = 29h
- Return: BL = Typematic rate (characters per second) (see #0516)
- BH = delay (00h = 250ms, 01h = 500ms, 02h = 750ms, 03h = 1s)
- SeeAlso: AH=03h,AH=2Ah
-
- (Table 0516)
- Values for HUNTER 16 Typematic rate:
- 00h 30.0 08h 15.0 10h 7.5 18h 3.7
- 01h 26.7 09h 13.3 11h 6.7 19h 3.3
- 02h 24.0 0Ah 12.0 12h 6.0 1Ah 3.0
- 03h 21.8 0Bh 10.9 13h 5.5 1Bh 2.7
- 04h 20.0 0Ch 10.0 14h 5.0 1Ch 2.5
- 05h 18.5 0Dh 9.2 15h 4.6 1Dh 2.3
- 06h 17.1 0Eh 8.6 16h 4.3 1Eh 2.1
- 07h 16.0 0Fh 8.0 17h 4.0 1Fh 2.0
- SeeAlso: AH=2Ah
- --------b-162A------------------------------------
- INT 16 - HUNTER 16 - CONTROL KEY REPEAT
- AH = 2Ah
- AL = new state of keyboard autorepeat (00h disabled, 01h enabled)
- SeeAlso: AH=03h,AH=26h,AH=29h,AH=2Bh
- --------b-162B------------------------------------
- INT 16 - HUNTER 16 - REDEFINE KEY SCAN CODES
- AH = 2Bh
- AL = which key table to redefine
- 00h unshifted
- 01h shifted
- 02h Numlock
- BH = standard scan code of key (00h-80h)
- BL = new scan code
- Desc: redefine the generated scan code from BH to BL
- SeeAlso: AH=24h,AH=2Ah,AH=2Ch
- --------b-162C------------------------------------
- INT 16 - HUNTER 16 - REDEFINE RAW KEY CODES
- AH = 2Ch
- AL = Matrix code of key (see AH=29h)
- BL = new key code
- Return: AL = status (00h success, nonzero failed)
- Desc: redefine the key code generated by holding the PAW key down and
- pressing the key in AL
- SeeAlso: AH=24h,AH=2Bh
- --------b-162D------------------------------------
- INT 16 - HUNTER 16 - CONTROL BREAK KEYS
- AH = 2Dh
- AL = enabled break keys
- bit 0 Ctrl-C
- bit 1 Ctrl-Break
- BX = 0708h
- CX = 0910h
- DX = 1112h
- Return: AL = status (00h success, FFh failed)
- SeeAlso: AH=21h"HUNTER"
- --------U-163577-----------------------------
- INT 16 U - TextWare TWTSR - API
- AX = 3577h
- CX = function
- 00CBh ???
- Return: AX = 0000h
- BX = 0000h
- DX:CX -> ???
- 00CCh uninstall
- Return: AX = status
- 0000h successful
- FFFDh unable to unload because vectors taken
- 00CDh ???
- Return: AX = 0000h
- BX = 0000h
- DX:CX -> ???
- other
- Return: AX = 5345h ('SE')
- Program: TWTSR is a TSR which allows the TextWare hypertext browser to be
- popped up via hotkey
- SeeAlso: AX=D724h
- --------U-164252-----------------------------
- INT 16 - TEXTCAP 2.0 - INSTALLATION CHECK
- AX = 4252h
- Return: AX = 5242h if installed
- Program: TEXTCAP 2.0 is a heavily modified (by Gisbert W. Selke) version of
- the PC Magazine utility CAPTURE written by Tom Kihlken
- SeeAlso: AX=4253h,AX=4254h
- --------U-164253-----------------------------
- INT 16 - TEXTCAP 2.0 - UNINSTALL
- AX = 4253h
- Return: AX = segment of resident code
- Notes: the uninstall code does not check whether interrupt vectors have been
- chained by other programs
- the caller must free the main memory block (using the returned segment)
- SeeAlso: AX=4252h,AX=4254h
- --------U-164254-----------------------------
- INT 16 - TEXTCAP 2.0 - DUMP TEXT SCREEN TO FILE
- AX = 4254h
- Return: AX = status
- 4254h if screen dump will be written as soon as disk becomes idle
- 5442h if screen dump written
- SeeAlso: AX=4252h,AX=4253h
- --------e-164500-----------------------------
- INT 16 - Shamrock Software EMAIL - GET STATUS
- AX = 4500h
- DL = port number (01h = COM1)
- ES:BX -> 13-byte buffer for ASCIZ name
- Return: AX = 4D00h if EMAIL installed on specified port
- ES:BX -> "" if no connection
- -> "*" if connection but caller has not identified name
- -> name otherwise
- CX = version (CH = major, CL = minor)
- DL = privilege level of user (00h = guest)
- DH = chosen language (00h German, 01h English)
- SeeAlso: AX=4501h,AX=4502h
- --------e-164501-----------------------------
- INT 16 - Shamrock Software EMAIL - GET ELAPSED ONLINE TIME AND MAXIMUM TIME
- AX = 4501h
- DL = port number (01h = COM1)
- Return: AX = 4D00h if EMAIL installed on specified port
- BX = maximum connect time in clock ticks
- CX = maximum connect time for guests (without name) in clock ticks
- DX = elapsed connect time of current user in clock ticks
- SeeAlso: AX=4500h
- --------e-164502-----------------------------
- INT 16 - Shamrock Software EMAIL - GET CURRENT COMMUNICATIONS PARAMETERS
- AX = 4502h
- DL = port number (01h = COM1)
- Return: AX = 4D00h if EMAIL installed on specified port
- BL = current value of serial port's Line Control Register
- BH = flags (see #0517)
- CX = selected country code (33 = France, 49 = Germany, etc)
- DX = baudrate divisor (115200/DX = baudrate)
- SeeAlso: AX=4500h
-
- Bitfields for Shamrock Software EMAIL flags:
- Bit(s) Description (Table 0517)
- 0 ISO code
- 1 pause
- 2 linefeed
- 3 ANSI sequences
- --------e-164503-----------------------------
- INT 16 - Shamrock Software EMAIL - SPECIFY COMMAND-WORD FOR USER FUNCTION
- AX = 4503h
- DL = port number (01h = COM1)
- DH = maximum execution time in clock ticks (00h = 5 seconds)
- ES:BX -> ASCIZ string with new user command-word
- Return: AX = 4D00h if EMAIL installed on specified port
- Notes: a single user command (consisting of only uppercase letters and digits)
- may be defined, and remains valid until it is overwritten or the
- EMAIL program terminates; the user command must be activated by
- calling AX=4504h at least once.
- an existing command word may be redefined with this function
- SeeAlso: AX=4504h,AX=4505h
- --------e-164504-----------------------------
- INT 16 - Shamrock Software EMAIL - CHECK FOR USER FUNCTION COMMAND-WORD
- AX = 4504h
- DL = port number (01h = COM1)
- ES:BX -> 80-byte buffer for ASCIZ user input line
- Return: AX = 4D00h if EMAIL installed on specified port
- DL = flags
- bit 0: user function supported (always set)
- bit 1: user entered user-function command word
- if DL bit 1 set,
- ES:BX buffer contains line entered by user which begins with
- the defined command word and has been converted to all
- caps
- Note: caller must process the returned commandline and invoke AX=4505h
- within five seconds with the result of that processing
- SeeAlso: AX=4503h,AX=4505h
- --------e-164505-----------------------------
- INT 16 - Shamrock Software EMAIL - SEND RESULT OF USER FUNCTION
- AX = 4505h
- DL = port number (01h = COM1)
- DH = error flag
- bit 3: set on error
- ES:BX -> ASCIZ text to return to user, max 1024 bytes
- Return: AH = 4Dh if EMAIL installed on specified port
- AL = status
- 00h successful
- 02h unable to perform function (timeout, prev call not complete)
- other error
- Notes: if the error flag in DH is set, the string is not sent and an error
- message is generated instead; if this function is not called within
- five seconds of AX=4504h, EMAIL automatically generates an error
- message
- the string is copied into an internal buffer, allowing this function's
- caller to continue immediately
- SeeAlso: AX=4503h,AX=4504h,INT 17/AX=2400h
- --------e-164506-----------------------------
- INT 16 - Shamrock Software EMAIL - MONITOR XMODEM DOWNLOAD
- AX = 4506h
- DL = port number (01h = COM1)
- ES:BX -> 13-byte buffer for ASCIZ filename
- Return: AX = 4D00h if EMAIL installed on specified port
- DH = Xmodem status
- 00h no XGET command given
- 01h XGET in progress
- 02h XGET completed successfully
- ES:BX buffer filled with last filename given to XGET command
- (without path)
- Note: DH=02h will only be returned once per XGET; subsequent calls will
- return DH=00h
- SeeAlso: AX=4500h,INT 17/AX=2408h
- --------K-164B-------------------------------
- INT 16 - Frank Klemm Keyboard Driver v2.0 - API
- AH = 4Bh
- CX = code or action
- 0000h-FEFFh key code
- FF00h-FFFFh action (see #0518)
- BL = scan code (normal keys) or scan code + 60h (enhanced keys)
- BH = shift state (see #0519)
- Return: CX = previous code or action
-
- (Table 0518)
- Values for Frank Klemm Keyboard Driver action code:
- FF00h no action
- FF01h hardcopy
- FF02h left shift
- FF03h right shift
- FF04h left Ctrl
- FF05h right Ctrl
- FF06h left Alt
- FF07h right Alt / AltGr
- FF08h CapsLock
- FF09h NumLock
- FF0Ah ScrlLock
- FF0Bh Insert (returns code 5200h or 52E0h)
- FF0Ch Pause
- FF0Dh Ctrl-Break function
- FF0Eh warm boot via far jump to F000h:FFF0h
- FF0Fh terminate current program
- FF10h key for entering keys via Alt-numpad (read-only)
- FF11h clear keyboard buffer
- FF12h reset (warmboot on XT)
- FF13h mouse sensitivity (read-only)
- FF14h keyjobs (read-only)
- FF15h SysRq
- FF16h turn on CPU cache (486+)
- FF17h turn off CPU cache (486+)
- SeeAlso: #0519
-
- (Table 0519)
- Values for Frank Klemm Keyboard Driver shift state:
- 00h no shift keys
- 01h either Shift
- 02h either Ctrl
- 03h left Alt
- 04h Ctrl + Alt
- ---standard keyboard---
- 05h right Alt / AltGr
- ---Russian keyboard---
- 05h Russian + no shift keys
- 06h Russian + either Shift
- SeeAlso: #0518
- --------K-164D4F-----------------------------
- INT 16 - M16_KBD.COM v5.6 - INSTALLATION CHECK
- AX = 4D4Fh
- Return: AX = 6F6Dh if installed
- ES = segment of resident code
- Program: M16_KBD is a shareware Cyrillic keyboard driver by I.V. Morozov
- SeeAlso: INT 10/AX=1130h/BX=4D4Fh
- --------J-165000-----------------------------
- INT 16 - KEYBOARD - AX PC - SET KEYBOARD COUNTRY CODE
- AX = 5000h
- BX = country code
- 0001h USA (English), 0051h Japan
- Return: AL = status
- 00h successful
- 01h bad country code
- 02h other error
- Notes: the K3PLUS v6.00+ INT 16 BIOS replacement will switch between the
- supported country specific layout (e.g. BX=0031h Germany, BX=001Fh
- Netherlands, BX=0020h Belgium, BX=0022h Spain) (as with <Ctrl>+
- <Alt>+<F2>) and K3PLUS' transparent mode (as with <Ctrl>+<Alt>+<F1>).
- In transparent mode (BX=0001h), K3PLUS chains to the underlying
- driver (normally the BIOS driver with US-layout). K3PLUS beeps on
- mode changes
- SeeAlso: AX=5001h,AX=AF4Dh,INT 10/AX=5000h,INT 17/AX=5000h
- --------J-165001-----------------------------
- INT 16 - KEYBOARD - AX PC - GET KEYBOARD COUNTRY CODE
- AX = 5001h
- Return: AL = status
- 00h successful
- BX = country code
- 02h error
- Note: also supported by K3PLUS v6.00+
- SeeAlso: AX=5000h,INT 10/AX=5001h,INT 17/AX=5001h
- --------J-1651-------------------------------
- INT 16 - KEYBOARD - AX PC - READ SHIFT KEY STATUS
- AH = 51h
- Return: AL = standard shift key states (see #0506,#0511)
- AH = Kana lock (00h off, 01h on)
- Note: also supported by K3PLUS v6.00+, but K3PLUS always returns AH=00h
- SeeAlso: AH=02h,AH=12h,AH=22h
- --------t-165453BX5242-----------------------
- INT 16 - TSRBONES - INSTALLATION CHECK
- AX = 5453h ('TS')
- BX = 5242h ('RB')
- CX = 4F4Eh ('ON')
- DX = 4553h ('ES')
- Return: AX = 4553h if installed
- BX = 4F4Eh if installed
- CX = 5242h if installed
- DX = 5453h if installed
- Program: TSRBONES is a skeletal TSR framework by Robert Curtis Davis
- Note: these values are the default as the TSRBONES package is distributed,
- but will normally be changed when implementing an actual TSR with
- the TSRBONES skeleton
- SeeAlso: INT 2D/AL=00h"AMIS"
- --------A-165500-----------------------------
- INT 16 C - Microsoft Word internal - MICROSOFT WORD COOPERATION WITH TSR
- AX = 5500h
- Return: AX = 4D53h ('MS') if keyboard TSR present
- Notes: during startup, Microsoft Word tries to communicate with any TSRs
- that are present through this call.
- if the return is not 4D53h, Word installs its own INT 09 and INT 16
- handlers; otherwise it assumes that the TSR will handle the keyboard
- SeeAlso: AX=55FFh,INT 1A/AX=3601h
- --------A-1655FE-----------------------------
- INT 16 CU - Microsoft QBASIC internal - MICROSOFT COOPERATION WITH TSR
- AX = 55FEh
- DX = function
- 0000h initialize
- ES:BX -> ??? function
- ES:CX -> ??? structure
- FFFFh shutdown/reset
- Return: AX = result
- 4D4Bh only the INT 1B handler will be installed.
- other: handlers for INT 08, INT 09, INT 16, INT 1B, and INT 1C
- are installed
- Notes: The pointer in ES:CX seems to point at a structure defining a callback
- function when new keyboard keys are pressed. If a TSR returns
- AX=4D4Bh, QBASIC will stop (with IRQ's and interrupts enabled).
- these calls are also made by MS-DOS 6.0's DOSSHELL at startup, exit,
- and before/after shelling out
- since EDIT.COM and HELP.COM merely invoke QBASIC, those two programs
- will also cause this interface to be invoked
- K3PLUS v6.07+ supports this function, but will never invoke the
- callback function
- SeeAlso: AX=5500h,AX=AF4Dh,INT 1A/AX=3601h
- --------U-1655FF-----------------------------
- INT 16 C - Microsoft Word - TSR COOPERATION???
- AX = 55FFh
- BX >= 0004h (version of Microsoft Word [BL = major] ???)
- CX = function
- 0000h set ??? flag
- other clear ??? flag
- Notes: hooks intercepting this call are present in SWAPSH and SWAPDT v1.77j,
- distributed with PC Tools v7, as well as the Trusted Access
- SCRNBLNK.COM; this may be part of the standard TesSeRact library
- known to be called by the German edition of Microsoft Word 5.0
- SeeAlso: AX=5500h,INT 2F/AX=5453h
- --------c-165758BX4858-----------------------
- INT 16 U - Netroom CACHECLK - INSTALLATION CHECK
- AX = 5758h
- BX = 4858h ('HX')
- DX = 4443h ('DC')
- CX <> 5758h
- Return: BX = 6878h if installed
- CX = 6463h if installed
- AX = code segment of TSR
- CX = internal version??? (v3.00 returns 0100h)
- Program: CACHECLK is a "cloaked" disk cache included with Netroom
- Notes: if CX=5758h on entry, CACHECLK returns with all registers unchanged
- the cache statistics are located early in the segment pointed at by
- AX on return
- SeeAlso: INT 2F/AX=5758h
- --------m-165758BX5754-----------------------
- INT 16 U - Netroom ??? - ???
- AX = 5758h
- BX = 5754h
- ???
- Return: ???
- --------m-165758BX5755-----------------------
- INT 16 U - Netroom ??? - ???
- AX = 5758h
- BX = 5755h
- DS:SI -> ???
- Return: ???
- --------m-165758BX5756-----------------------
- INT 16 U - Netroom ??? - INSTALLATION CHECK
- AX = 5758h
- BX = 5756h
- Return: BX <> 5756h if installed
- --------m-165758BX5858-----------------------
- INT 16 U - Netroom PRENET - GET OLD INTERRUPT VECTORS
- AX = 5758h
- BX = 5858h
- Return: CF clear
- DX:BX -> saved copy of interrupt vector table
- Note: the installation check consists of calling this function and comparing
- BX against 5858h on return; if it has changed, PRENET is installed
- SeeAlso: AX=5758h/BX=5859h
- Index: installation check;Netroom PRENET
- --------m-165758BX5859-----------------------
- INT 16 U - Netroom POSTNET - GET OLD INTERRUPT VECTORS
- AX = 5758h
- BX = 5859h
- Return: CF clear
- DX:BX -> saved copy of interrupt vector table
- Note: the installation check consists of calling this function and comparing
- BX against 5859h on return; if it has changed, POSTNET is installed
- SeeAlso: AX=5758h/BX=5858h
- Index: installation check;Netroom POSTNET
- ----------166701-----------------------------
- INT 16 - Doorway v2.30+ - INSTALLATION CHECK
- AX = 6701h
- Return: AX = 8080h if running under Doorway
- Program: Doorway is a program by Marshall Dudley which allows most DOS programs
- to run as a BBS door without modification
- --------U-166969BX6968-----------------------
- INT 16 - PC Tools v5.1+ BACKTALK - UNHOOK
- AX = 6969h
- BX = 6968h
- Return: resident code unhooked, but not removed from memory
- Index: uninstall;BACKTALK
- --------U-166969BX6969-----------------------
- INT 16 - PC Tools v5.1+ BACKTALK - INSTALLATION CHECK
- AX = 6969h
- BX = 6969h
- DX = 0000h
- Return: DX nonzero if installed
- BX = CS of resident code
- DX = PSP segment of resident code
- DS:SI -> ASCIZ identification string "CPoint Talk"
- --------i-166A6B-----------------------------
- INT 16 U - FastJuice - DISABLE/UNLOAD???
- AX = 6A6Bh
- Return: ???
- Program: FastJuice is a resident battery-power monitor by SeaSide Software
- SeeAlso: AX=7463h
- Index: uninstall;FastJuice
- --------G-166C63-----------------------------
- INT 16 U - TMED v1.6a - INSTALLATION CHECK
- AX = 6C63h ('lc')
- Return: AX = 4C43h ('LC') if installed
- Program: TMED is a freeware resident memory editor by Liang Chen
- --------U-166D74-----------------------------
- INT 16 - MTRTSR - INSTALLATION CHECK
- AX = 6D74h ('mt')
- Return: AX = 4D54h ('MT') if installed
- Program: MTRTSR is a part of the shareware MTR package by Mechon Mamre which
- permits searching the large corpus of classical Hebrew texts in the
- package
- SeeAlso: INT 10/AX=6D74h"MTRFONTS"
- --------!---Section--------------------------
- Interrupt List, part 4 of 16
- Copyright (c) 1989,1990,1991,1992,1993,1994,1995,1996,1997 Ralf Brown
- --------b-166F00-----------------------------
- INT 16 - HP Vectra EX-BIOS - "F16_INQUIRE" - Extended BIOS INSTALLATION CHECK
- AX = 6F00h
- BX <> 4850h (usually set to 0000h for simplicity)
- Return: BX = 4850h ("HP") if present
- Notes: called by recent MS Mouse drivers looking for an HP-HIL mouse
- supported by the original HP Vectra AT and ES/QS/RS series HP Vectras
- SeeAlso: AX=6F01h,AX=6F04h,AX=6F07h,AX=6F09h,AX=6F0Dh,AX=6F11h,AX=6F12h
- SeeAlso: INT 14/AX=6F00h,INT 17/AX=6F00h,INT 33/AX=6F00h
- SeeAlso: INT 6F/AH=00h"HP Vectra"
- --------b-166F01-----------------------------
- INT 16 - HP Vectra EX-BIOS - "F16_DEF_ATTR" - GET DEFAULT TYPEMATIC VALUES
- AX = 6F01h
- Return: AH = 00h (successful)
- CX = 0004h (size of returned buffer)
- ES:SI -> buffer for typematic info (see #0520)
- Note: supported by the original HP Vectra AT and ES/QS/RS series HP Vectras
- SeeAlso: AX=6F00h,AX=6F02h,AX=6F03h,AX=6F04h
-
- Format of HP Vectra EX-BIOS typematic info:
- Offset Size Description (Table 0520)
- 00h BYTE delay before repeat for all non-Cursor Control Pad keys
- (see #0521)
- 01h BYTE typematic rate for all non-Cursor Control Pad keys (see #0522)
- 02h BYTE delay before repeat for Cursor Control Pad keys (see #0523)
- 03h BYTE typematic rate for Cursor Control Pad keys (see #0522)
-
- (Table 0521)
- Values for HP Vectra EX-BIOS non-CCP delay time:
- 00h 17 ms
- 01h 150 ms
- 02h 283 ms
- 03h 417 ms
- 04h 550 ms
- 05h 683 ms
- 06h 817 ms
- 07h 950 ms
- 08h 1083 ms
- 09h 1217 ms
- 0Ah 1350 ms
- 0Bh 1483 ms
- 0Ch 1617 ms
- 0Dh 1750 ms
- 0Eh 1883 ms
- 0Fh 2017 ms
- Note: the above values assume that the key repeat rate has been set to 60 Hz;
- double the times if set to 30 Hz
- SeeAlso: #0520,#0522,#0523
-
- (Table 0522)
- Values for HP Vectra EX-BIOS typematic rate:
- 00h 60 / sec
- 01h 30 / sec
- 02h 20
- 03h 15
- 04h 12
- 05h 10
- 06h 8.57
- 07h 7.5
- 08h 6.66
- 09h 6 / sec
- 0Ah 5.45
- 0Bh 5
- 0Ch 4.62
- 0Dh 4.28
- 0Eh 4 / sec
- 0Fh typematic disabled
- Note: the above values assume that the key repeat rate has been set to 60 Hz;
- halve the rates if set to 30 Hz
- SeeAlso: #0521,#0523
-
- (Table 0523)
- Values for HP Vectra EX-BIOS CCP delay time:
- 00h 17 ms
- 01h 83 ms
- 02h 150 ms
- 03h 217 ms
- 04h 283 ms
- 05h 350 ms
- 06h 417 ms
- 07h 483 ms
- 08h 550 ms
- 09h 617 ms
- 0Ah 683 ms
- 0Bh 750 ms
- 0Ch 817 ms
- 0Dh 883 ms
- 0Eh 950 ms
- 0Fh 1017 ms
- Note: the above values assume that the key repeat rate has been set to 60 Hz;
- double the times if set to 30 Hz
- SeeAlso: #0521,#0522
- --------b-166F02-----------------------------
- INT 16 - HP Vectra EX-BIOS - "F16_GET_ATTR" - GET CURRENT TYPEMATIC VALUES
- AX = 6F02h
- Return: AH = 00h (successful)
- CX = 0004h (size of returned buffer)
- ES:SI -> buffer for typematic info (see #0520)
- Note: supported by the original HP Vectra AT and ES/QS/RS series HP Vectras
- SeeAlso: AX=6F00h,AX=6F02h,AX=6F03h,AX=6F04h
- SeeAlso: AX=6F00h,AX=6F01h,AX=6F03h
- --------b-166F03-----------------------------
- INT 16 - HP Vectra EX-BIOS - "F16_SET_ATTR" - SET TYPEMATIC VALUES
- AX = 6F03h
- ES:SI -> buffer containing typematic info (see #0520)
- Return: AH = 00h (successful)
- Note: supported by the original HP Vectra AT and ES/QS/RS series HP Vectras
- SeeAlso: AX=6F00h,AX=6F02h,AX=6F03h,AX=6F04h
- SeeAlso: AX=6F00h,AX=6F01h,AX=6F02h
- --------b-166F04-----------------------------
- INT 16 - HP Vectra EX-BIOS - "F16_DEF_MAPPING" - GET DEFAULT KEY MAPPINGS
- AX = 6F04h
- ES:SI -> mapping buffer (see #0524)
- Return: AH = 00h (successful)
- CX = 001Eh (number of bytes in buffer)
- ES:SI buffer filled
- Notes: supported by the original HP Vectra AT and ES/QS/RS series HP Vectras
- the HIL input system translates the HIL keyboard events to simulate
- an IBM-compatible keyboard; the translation can be altered
- dynamically by applications
- SeeAlso: AX=6F00h,AX=6F05h,AX=6F06h
-
- Format of HP Vectra EX-BIOS keyboard mapping info:
- Offset Size Description (Table 0524)
- 00h 3 WORDs entry for V_QWERTY driver (IP, CS, DS)
- 06h 3 WORDs entry for V_SOFTKEY driver (IP, CS, DS)
- 0Ch 3 WORDs entry for V_FUNCTION driver
- 12h 3 WORDs entry for V_NUMPAD driver
- 18h 3 WORDs entry for V_CCP driver
- --------b-166F05-----------------------------
- INT 16 - HP Vectra EX-BIOS - "F16_GET_MAPPING" - GET CURRENT KEY MAPPINGS
- AX = 6F05h
- ES:SI -> mapping buffer (see #0524)
- Return: AH = 00h (successful)
- CX = 001Eh (number of bytes in buffer)
- ES:SI buffer filled
- Note: supported by the original HP Vectra AT and ES/QS/RS series HP Vectras
- SeeAlso: AX=6F04h,AX=6F06h
- --------b-166F06-----------------------------
- INT 16 - HP Vectra EX-BIOS - "F16_SET_MAPPING" - SET KEY MAPPINGS
- AX = 6F06h
- CX = number of bytes in buffer (001Eh)
- ES:SI -> mapping buffer (see #0524)
- Return: AH = 00h (successful)
- Notes: supported by the original HP Vectra AT and ES/QS/RS series HP Vectras
- any application which modifies the key mappings should restore them
- before terminating
- drivers installed with this function are assured of 32 bytes of stack
- space when they are invoked
- SeeAlso: AX=6F04h,AX=6F05h,AX=6F07h
- --------b-166F07-----------------------------
- INT 16 - HP Vectra EX-BIOS - "F16_SET_XLATORS" - SET CCP AND SOFTKEY PADS
- AX = 6F07h
- BL = translation to set (see #0525)
- Return: AH = 00h (successful)
- Notes: supported by the original HP Vectra AT and ES/QS/RS series HP Vectras
- this function may no longer work properly if the application has
- modified the key mappings with AX=6F06h
- SeeAlso: AX=6F06h,AX=6F09h
-
- (Table 0525)
- Values for HP Vectra keyboard translation specifier:
- 00h map V_CCP to V_CCPCUR, forcing the cursor pad to return cursor keys
- 01h map V_CCP to V_CCPNUM, forcing the cursor pad to always return numbers
- 02h map V_CCP to V_OFF, disabling the cursor pad
- 03h map V_CCP to V_CCPGID, converting cursor pad keys to GID data
- 04h map V_CCP to V_RAW, passing cursor pad data untranslated to INT 09
- 05h map V_SOFTKEY to V_SKEY2KFEY, translating into standard function keys
- 06h map V_SOFTKEY to V_RAW, passing Softkey scancodes direct to INT 09
- 07h map V_SOFTKEY to V_OFF, disabling HP Softkeys
- SeeAlso: #0526
-
- (Table 0526)
- Values for HP Vectra scancodes and BIOS keycodes for V_RAW translator:
- INT 09 INT 16 keycode
- Key scan code Default Shifted Ctrl Alt
- * (NumPd) 37h 2Ah (Prt Sc) 00/72h 00/37H
- Sysreq 54h -- -- -- --
- CCP-Up 60h 00/D9h 00/BFh 00/A5h 00/8BH
- CCP-Left 61h 00/DAh 00/C0h 00/A6h 00/8CH
- CCP-Down 62h 00/DBh 00/C1h 00/A7h 00/8DH
- CCP-Right 63h 00/DCh 00/C2h 00/A8h 00/8EH
- CCP-Home 64h 00/DDh 00/C3h 00/A9h 00/8FH
- CCP-PgUp 65h 00/DEh 00/C4h 00/AAh 00/90H
- CCP-End 66h 00/DFh 00/C5h 00/ABh 00/91H
- CCP-PgDn 67h 00/E0h 00/C6h 00/ACh 00/92H
- CCP-Ins 68h 00/E1h 00/C7h 00/ADh 00/93H
- CCP-Del 69h 00/E2h 00/C8h 00/AEh 00/94H
- CCP-CNTR 6Ah 00/E3h 00/C9h 00/AFh 00/95H
- f1 70h 00/E9h 00/CFh 00/B5h 00/9BH
- f2 71h 00/EAh 00/D0h 00/B6h 00/9CH
- f3 72h 00/EBh 00/D1h 00/B7h 00/9DH
- f4 73h 00/ECh 00/D2h 00/B8h 00/9EH
- f5 74h 00/EDh 00/D3h 00/B9h 00/9FH
- f6 75h 00/EEh 00/D4h 00/BAh 00/A0H
- f7 76h 00/EFh 00/D5h 00/BBh 00/A1H
- f8 77h 00/F0h 00/D6h 00/BCh 00/A2H
- Note: only HP-specific codes are listed in this table; see INT 09 for a full
- list of standard scan codes
- SeeAlso: #0005,#0525
- --------b-166F08-----------------------------
- INT 16 - HP Vectra EX-BIOS - "F16_KBD" - GET KEYBOARD INFORMATION
- AX = 6F08h
- Return: AH = status
- 00h successful
- 02h unsupported (non-HIL, i.e. standard, keyboard)
- BH = HP-HIL address (HP Vectra AT only???)
- BL = HP-HIL ID (HP Vectra AT only???)
- BL = keyboard language (ES/QS/RS only???) (see #0527)
- Notes: supported by the original HP Vectra AT and ES/QS/RS series HP Vectras
- the driver's address in the HP_VECTOR_TABLE (see INT 6F/AH=00h) may
- be computed as (BH-1)*6 + N, where N is the address of the first
- HP-HIL device driver (see INT 6F/AH=0Ah"F_INQUIRE_FIRST")
- SeeAlso: AX=6F05h,AX=6F09h,INT 6F/AH=0Ah"F_INQUIRE_FIRST"
-
- (Table 0527)
- Values for HP HIL keyboard language code:
- 00h reserved
- 01h Arabic-French
- 02h Kanji
- 03h Swiss-French
- 04h Portugese
- 05h Arabic
- 06h Hebrew
- 07h Canadian-English
- 08h Turkish
- 09h Greek
- 0Ah Thai
- 0Bh Italian
- 0Ch Hangul (Korean)
- 0Dh Dutch
- 0Eh Swedish
- 0Fh German
- 10h Chinese (PRC)
- 11h Chinese (Taiwan)
- 12h Swiss (French ii)
- 13h Spanish
- 14h Swiss (German ii)
- 15h Belgian (Flemish)
- 16h Finish
- 17h United Kingdom
- 18h French-Canadian
- 19h French-German
- 1Ah Norwegian
- 1Bh French
- 1Ch Danish
- 1Dh Katakana
- 1Eh Latin American Spanish
- 1Fh United States-American
- 20h-FEh reserved
- FFh non-HP keyboard (IBM AT keyboard and IBM Enhanced keyboard)
- --------b-166F09-----------------------------
- INT 16 - HP Vectra EX-BIOS - "F16_KBD_RESET" - RESET KEYBOARD TO DEFAULTS
- AX = 6F09h
- Return: AH = 00h (successful)
- Desc: reset all keyboard mappings to their default translators, and reset
- typematic values to their defaults
- Note: supported by the original HP Vectra AT and ES/QS/RS series HP Vectras
- SeeAlso: AX=6F04h,AX=6F07h,AX=6F08h
- --------b-166F0A-----------------------------
- INT 16 - HP Vectra ES/QS/RS EX-BIOS - READ PROCESSOR SPEED
- AX = 6F0Ah
- Return: AH = 00h (successful)
- BX = speed code
- 0Bh for low speed (see #0528)
- 12h for medium speed (see #0528)
- 0Ch for high speed (see #0528)
- Note: supported by ES, QS, and RS series of HP Vectras
- SeeAlso: AX=6F00h
-
- (Table 0528)
- Values for HP Vetra CPU speed:
- Vectra Low Medium High
- ES 8 MHz - 8 MHz
- ES/12 8 MHz - 12 MHz
- QS/16, RS/16 8 MHz - 16 MHz
- QS/16S 8 MHz - 16 MHz
- QS/20, RS/20 8 MHz - 20 MHz
- RS/20C 5 MHz 10 MHz 20 MHz
- RS/25C 5 MHz 12.5 MHz 25 MHz
- --------b-166F0B-----------------------------
- INT 16 - HP Vectra ES/QS/RS EX-BIOS - SET PROCESSOR SPEED TO LOW
- AX = 6F0Bh
- Return: AH = 00h (successful)
- Notes: see AX=6F0Ah for speed definitions
- supported by ES, QS, and RS series of HP Vectras
- SeeAlso: AX=6F00h,AX=6F0Ah
- --------b-166F0C-----------------------------
- INT 16 - HP Vectra ES/QS/RS EX-BIOS - SET PROCESSOR SPEED TO HIGH
- AX = 6F0Ch
- Return: AH = 00h (successful)
- Notes: see AX=6F0Ah for speed definitions
- supported by ES, QS, and RS series of HP Vectras
- SeeAlso: AX=6F00h,AX=6F0Ah
- --------b-166F0D-----------------------------
- INT 16 - HP Vectra ES/QS/RS EX-BIOS - GET HIL Extended BIOS INTERRUPT NUMBER
- AX = 6F0Dh
- Return: AH = interrupt number (default 6Fh, 02h means 6Fh as well)
- Notes: supported by ES, QS, and RS series of HP Vectras
- called by MS Windows HPSYSTEM.DRV and HPEBIOS.386 to support the HP-HIL
- input system
- SeeAlso: AX=6F00h,AX=6F0Eh,INT 6F/AH=00h"HP Vectra",INT 6F/AH=0Ah"HP"
- --------b-166F0E-----------------------------
- INT 16 - HP Vectra ES/QS/RS EX-BIOS - SET HIL Extended BIOS INTERRUPT NUMBER
- AX = 6F0Eh
- BL = new interrupt number (60h-6Fh,78h-7Fh)
- Return: AH = status (00h = successful)
- Desc: allows the HIL Extended BIOS software to use a non-default interrupt
- number in case of an interrupt conflict with another application
- Notes: supported by ES, QS, and RS series of HP Vectras
- called by MS Windows HPSYSTEM.DRV and HPEBIOS.386 to support the HP-HIL
- input system
- SeeAlso: AX=6F00h,AX=6F0Dh,INT 6F/AH=00h"HP",INT 6F/AH=0Ah"HP"
- --------b-166F0F-----------------------------
- INT 16 - HP Vectras RS/20C and RS/25C - ENABLE MEMORY CACHING
- AX = 6F0Fh
- Return: AH = status
- 00h successful
- FEh cache subsystem is bad
- SeeAlso: AX=6F00h,AX=6F10h,AX=6F11h
- --------b-166F10-----------------------------
- INT 16 - HP Vectras RS/20C and RS/25C - DISABLE MEMORY CACHING
- AX = 6F10h
- Return: AH = 00h (successful)
- SeeAlso: AX=6F00h,AX=6F0Fh,AX=6F11h
- --------b-166F11-----------------------------
- INT 16 - HP Vectras RS/20C and RS/25C - GET MEMORY CACHING STATE
- AX = 6F11h
- Return: AH = 00h (successful)
- AL bit 0 = cache state
- 0 cache disabled
- 1 cache enabled
- SeeAlso: AX=6F00h,AX=6F0Fh,AX=6F10h
- --------b-166F12-----------------------------
- INT 16 - HP Vectras RS/20C and RS/25C - SET PROCESSOR SPEED TO MEDIUM
- AX = 6F12h
- Return: AH = 00h (successful)
- Note: see AX=6F0Ah for speed definitions
- SeeAlso: AX=6F00h,AX=6F0Ah
- --------K-1670-------------------------------
- INT 16 - FAKEY.COM - INSTALLATION CHECK
- AH = 70h
- Return: AX = 1954h if installed
- Program: FAKEY is a keystroke faking utility by System Enhancement Associates
- --------K-1671-------------------------------
- INT 16 - FAKEY.COM - PUSH KEYSTROKES
- AH = 71h
- CX = number of keystrokes
- DS:SI -> array of words containing keystrokes to be returned by AH=00h
- Program: FAKEY is a keystroke faking utility by System Enhancement Associates
- SeeAlso: AH=05h,AH=72h
- --------K-1672-------------------------------
- INT 16 - FAKEY.COM - CLEAR FAKED KEYSTROKES
- AH = 72h
- Program: FAKEY is a keystroke faking utility by System Enhancement Associates
- SeeAlso: AH=71h
- --------K-1673-------------------------------
- INT 16 - FAKEY.COM - PLAY TONES
- AH = 73h
- CX = number of tones to play
- DS:SI -> array of tones (see #0529)
- Program: FAKEY is a keystroke faking utility by System Enhancement Associates
- SeeAlso: INT 15/AX=1019h
-
- Format of FAKEY.COM tone array entries:
- Offset Size Description (Table 0529)
- 00h WORD divisor for timer channel 2
- 02h WORD duration in clock ticks
- --------i-167463-----------------------------
- INT 16 U - FastJuice - INSTALLATION CHECK
- AX = 7463h ("tc")
- Return: AX = 5443h ("TC") if installed
- Program: FastJuice is a resident battery-power monitor by SeaSide Software
- SeeAlso: AX=6A6Bh
- --------R-1675-------------------------------
- INT 16 - pcANYWHERE III - SET TICK COUNT FOR SCANNING
- AH = 75h
- AL = number of ticks between checks for new screen changes
- --------R-1676-------------------------------
- INT 16 - pcANYWHERE III - SET ERROR CHECKING TYPE
- AH = 76h
- AL = error checking type
- 00h none
- 01h fast
- 02h slow
- --------R-1677-------------------------------
- INT 16 - pcANYWHERE III - LOG OFF
- AH = 77h
- AL = mode
- 00h wait for another call
- 01h leave in Memory Resident Mode
- 02h leave in Automatic Mode
- FFh leave in current operating mode
- --------U-167761-----------------------------
- INT 16 - WATCH.COM v2.x-v3.0 - INSTALLATION CHECK
- AX = 7761h ('wa')
- Return: AX = 5741h ('WA') if installed
- Note: WATCH.COM is part of the "TSR" package by Kim Kokkonen
- SeeAlso: INT 21/AX=7761h
- --------U-167788BX7789-----------------------
- INT 16 - PC Magazine PUSHDIR.COM - INSTALLATION CHECK
- AX = 7788h
- BX = 7789h
- DS:SI -> signature "PUSHDIR VERSION 1.0"
- Return: AX = 7789h if installed and signature correct
- BX = 7788h
- SI destroyed
- --------R-1679-------------------------------
- INT 16 - pcANYWHERE III - CHECK STATUS
- AH = 79h
- Return: AX = status
- FFFFh if resident and active
- FFFEh if resident but not active
- FFFDh if in Memory Resident mode
- FFFCh if in Automatic mode
- other value if not resident
- SeeAlso: AX=7B00h,INT 21/AX=2B44h
- --------R-167A-------------------------------
- INT 16 - pcANYWHERE III - CANCEL SESSION
- AH = 7Ah
- --------R-167B00-----------------------------
- INT 16 - pcANYWHERE III - SUSPEND
- AX = 7B00h
- SeeAlso: AH=79h,AX=7B01h
- --------R-167B01-----------------------------
- INT 16 - pcANYWHERE III - RESUME
- AX = 7B01h
- SeeAlso: AH=79h,AX=7B00h
- --------R-167C-------------------------------
- INT 16 - pcANYWHERE III - GET PORT CONFIGURATION
- AH = 7Ch
- Return: AH = port number
- AL = baud rate (see #0530)
- SeeAlso: AX=7B00h,AH=7Eh
-
- (Table 0530)
- Values for pcANYWHERE III baud rate:
- 00h 50 baud
- 01h 75 baud
- 02h 110 baud
- 03h 134.5 baud
- 04h 150 baud
- 05h 300 baud
- 06h 600 baud
- 07h 1200 baud
- 08h 1800 baud
- 09h 2000 baud
- 0Ah 2400 baud
- 0Bh 4800 baud
- 0Ch 7200 baud
- 0Dh 9600 baud
- 0Eh 19200 baud
- SeeAlso: #0235
- --------R-167D-------------------------------
- INT 16 - pcANYWHERE III - GET/SET TERMINAL PARAMETERS
- AH = 7Dh
- AL = subfunction
- 00h set terminal parameters
- 01h get terminal parameters
- 02h get configuration header and terminal parameters
- DS:CX -> terminal parameter block
- SeeAlso: AH=7Ch,AH=7Eh
- --------R-167E-------------------------------
- INT 16 - pcANYWHERE III - COMMUNICATIONS I/O THROUGH PORT
- AH = 7Eh
- AL = subfunction
- 01h port input status
- Return AX = 0 if no characer ready,
- AX = 1 if character ready
- 02h port input character
- Return AL = received character
- 03h port output character in CX
- 11h hang up phone
- SeeAlso: AH=7Ch
- --------R-167F-------------------------------
- INT 16 - pcANYWHERE III - SET KEYBOARD/SCREEN MODE
- AH = 7Fh
- AL = subfunction
- 00h enable remote keyboard only
- 01h enable host keyboard only
- 02h enable both keyboards
- 08h display top 24 lines
- 09h display bottom 24 lines
- 10h Hayes modem
- 11h other modem
- 12h direct connect
- --------U-1680-------------------------------
- INT 16 - MAKEY.COM - INSTALLATION CHECK
- AH = 80h
- Return: AX = 1954h if installed
- Program: MAKEY is a utility by System Enhancement Associates
- --------K-1687-------------------------------
- INT 16 - DK.COM v1.03 - INSTALLATION CHECK
- AH = 87h
- Return: AX = 4A57h ('JW') if installed
- Program: DK.COM is the resident part of a small keyboard macro utility
- by Digital Mechanics.
- --------U-168765BX4321-----------------------
- INT 16 - AT.COM version 8/26/87 - API
- AX = 8765h
- BX = 4321h
- CX = ??? or FFFFh
- if CX = FFFFh
- DX = number of event to remove or FFFFh
- Return: ES:BX -> event record array (see #0531)
- Program: AT.COM is a resident scheduler by Bill Frolik
-
- Format of AT.COM event record:
- Offset Size Description (Table 0531)
- 00h BYTE in-use flag (00h free, 01h in use, FFh end of array)
- 01h BYTE day of date on which to trigger
- 02h BYTE month of date on which to trigger
- 03h BYTE trigger time, minute
- 04h BYTE trigger time, hour
- 05h WORD offset of command to be executed
- --------K-1692-------------------------------
- INT 16 - KEYB.COM KEYBOARD CAPABILITIES CHECK (not an actual function!)
- AH = 92h
- Return: AH <= 80h if enhanced keyboard functions (AH=10h-12h) supported
- Desc: this function is called by the DOS 3.2 KEYBxx.COM and DOS 5+ KEYB.COM
- to determine the highest supported keyboard function
- Note: many BIOSes (including at least some versions of Phoenix and AMI) will
- destroy AH on return from functions higher than AH=12h, returning
- 12h less than was in AH on entry (due to a chain of DEC/JZ
- instructions)
- SeeAlso: AH=05h"PCjr",AH=A2h,INT 2F/AX=AD80h
- --------U-1699-------------------------------
- INT 16 - SCOUT v5.4 - GET ???
- AH = 99h
- Return: AX = ABCDh
- BX:CX -> ??? (appears to be start of PSP for resident portion)
- Program: Scout is a memory-resident file manager by New-Ware
- SeeAlso: AH=9Eh
- --------U-169E-------------------------------
- INT 16 - SCOUT v5.4 - INSTALLATION CHECK
- AH = 9Eh
- Return: AX = ABCDh if installed
- Program: Scout is a memory-resident file manager by New-Ware
- SeeAlso: AH=99h
- --------K-16A2-------------------------------
- INT 16 - KEYB.COM KEYBOARD CAPABILITIES CHECK (not an actual function!)
- AH = A2h
- Return: AH <= 80h if 122-key keyboard functions (AH=20h-22h) supported
- Desc: this function is called by the DOS 3.2 KEYBxx.COM and DOS 5+ KEYB.COM
- to determine the highest supported keyboard function
- Note: many BIOSes (including at least some versions of Phoenix and AMI) will
- destroy AH on return from functions higher than AH=12h, returning
- 12h less than was in AH on entry (due to a chain of DEC/JZ
- instructions)
- SeeAlso: AH=05h"PCjr",AH=92h,INT 2F/AX=AD80h
- --------V-16AA-------------------------------
- INT 16 - PTxxx.COM - (xxx=CGA,EGA,VGA,HER...) CALL GATE FOR GRAPHICS
- AH = AAh
- Various registers set up by high level language.
- Return: Graphics performed
- Note: PT stands for Paint Tools which is a graphics library for Turbo Pascal,
- Modula 2 and others from DataBiten in Sweden. The library is
- installed as a memory resident driver.
- --------U-16AABBBXEEFF-----------------------
- INT 16 U - JORJ v4.3 - INSTALLATION CHECK
- AX = AABBh
- BX = EEFFh
- Return: AX = EEFFh if installed
- BX = AABBh if installed
- CL = hotkey name (default 6Ah 'j' for Alt-J)
- Program: JORJ is a shareware dictionary with phonetic lookup by Jorj Software
- Co.
- Index: hotkeys;JORJ
- --------K-16AF20BX4B33-----------------------
- INT 16 - K3PLUS v6.00+ (API v2.0+) - GET EXTENDED BUFFER STATE
- AX = AF20h
- BX = 4B33h ('K3')
- Return: AX = K3 version (same as returned in BX by AX=AF4Dh)
- ES:BX -> extended keyboard buffer start
- ES:DX -> extended keyboard buffer end
- ES:SI -> next keystroke
- ES:DI -> last keystroke in buffer
- CX = number of keystrokes in buffer
- Program: K3PLUS is an extended keyboard driver by Matthias Paul and Axel C.
- Frinke, originally based on the K3 extended German keyboard driver
- by Martin Gerdes published in c't magazine in 1988
- Note: this function replaces the identical function AH=20h"K3"
- SeeAlso: AH=20h"K3",AX=AF25h,AX=AF4Dh,AX=AF50h,INT 2F/AX=ED58h
- --------K-16AF25BX4B33-----------------------
- INT 16 - K3PLUS v6.00+ (API v2.0+) - COPY INTO EXTENDED BUFFER
- AX = AF25h
- BX = 4B33h ('K3')
- CX = number of keystrokes to copy
- ES:SI -> buffer containing keystrokes
- Return: CF clear if successful
- CF set on error (i.e. buffer full)
- CX = number of keystrokes NOT transferred
- ES:SI -> first keystroke not transferred
- Note: this function replaces the identical function AH=25h"K3"
- SeeAlso: AH=25h"K3",AX=AF20h,AX=AF4Dh,AX=AF50h,INT 2F/AX=D44Fh/BX=0001h
- --------K-16AF4DBX4B33-----------------------
- INT 16 - K3PLUS v6.00+ (API v2.0+) - GET VERSION INFORMATION
- AX = AF4Dh
- BX = 4B33h ('K3')
- Return: AL = 50h if installed
- BX = K3 version
- DX = API version
- ES:CX -> K3 structure (version-dependent) (see #0532)
- Program: K3PLUS is an extended keyboard driver by Matthias Paul and Axel C.
- Frinke, originally based on the K3 extended German keyboard driver
- by Martin Gerdes published in c't magazine in 1988
- SeeAlso: AX=AF20h,AX=AF50h,AX=AF80h,AX=AF82h/BX=4B33h,INT 2F/AX=D44Fh/BX=0000h
- SeeAlso: INT 2F/AX=ED58h
- Index: installation check;K3PLUS
-
- Format of internal K3 structure:
- Offset Size Description (Table 0532)
- 00h 3 BYTEs signature "K3$"
- 03h BYTE length of structure, including this byte and signature
- 04h WORD compiler switch option flags A (see #0533)
- 06h WORD compiler switch option flags B (see #0534)
- 08h BYTE internal flags A (see #0535)
- 09h BYTE internal flags B (see #0536)
- 0Ah WORD DOS version recorded at startup
- 0Ch WORD "ActTypeSpeed"
- 0Eh WORD last Keyboard-ID sent
- 41ABh translated, 83ABh native (pass-through)
- 10h WORD offset of K3TAB Special
- 12h WORD offset of K3TAB German
- 14h WORD offset of K3TAB Alt
- 16h WORD offset of K3TAB AltGr
- 18h WORD offset of K3TAB Ctrl
- 1Ah WORD offset of K3TAB NPad
- 1Ch WORD offset of K3TAB CtrlNPad
- 1Eh WORD offset of K3TAB AltNPad
- 20h WORD offset of K3TAB ApoTbl or 0000h
- 22h WORD offset of K3TAB UmlautTbl or 0000h
- 24h WORD offset of K3TAB UmlautTblExp or 0000h
- 26h WORD length of video mode table
- 28h WORD offset of VidMdTbl or 0000h
- 2Ah BYTE '$' end marker
-
- Bitfields for K3PLUS compiler switch option flags A:
- Bit(s) Description (Table 0533)
- 15 GuINT16Fct2 (general use of INT 16 function 2)
- 14 Int15df (INT 15 has to be predefined)
- 13 GuAltNP (general use of Alt Numpad)
- 12 SupAT (ATs+ supported)
- 11 GuINT16Fct3 (general use of INT 16 function 3)
- 10 GuINT16Ret (general use of INT16 bad function return)
- 9-8 Layout (0-2, 3 reserved; 0=PC, 1=AT, 2=MF)
- 7 ForceMF (force MF decode without read-ID)
- 6 KXlate (translate keys for special keyboard)
- 5 UmlautX (umlaut translation capability included)
- 4 ApoX (translate apostrophe)
- 3 DoINT16 (INT 16 handler included)
- 2 UseCC (CopyCursor included)
- 1-0 UseEB
- 0=no extended keystroke buffer, 1=reserve mem, 2=use PSP, 3=reserved
-
- Bitfields for K3 compiler switch option flags B:
- Bit(s) Description (Table 0534)
- 15-11 reserved (0)
- 10 CtrlSeq (Ctrl macro capability included)
- 9-8 SupINT16fct55FE
- 6 DoInstallCheck (check for double installation)
- 5 SupINT16fct5PcJr (INT 16/AH=05h"PCjr" supported)
- 4 SendOut (sound and message output supported)
- 3 SupInt16fct5500 (INT 16/AX=5500h supported)
- 2 GuINT15Fct4F (calls to INT 15/AH=4Fh supported)
- 1-0 UseBufferStart (0=use standard area, 1=set standard area,
- 2=use internal indexes, 3=reserved)
-
- Bitfields for K3 internal flags A:
- Bit(s) Description (Table 0535)
- 7 DoingUmlautExp
- 6 CallINT15fct4F
- 5 Beep1 (requires SendOut set in option flags B)
- 4 ATflag (set for AT, 386, PS/2 Models 50-80)
- 3 XTflag (set for PC, PC/XT, Micromint PC, Pencock PC, PS/2 Model 30)
- 2 KeyClick
- 1 UmlautExp
- 0 UmlautTrans
-
- Bitfields for K3 internal flags B:
- Bit(s) Description (Table 0536)
- 7-5 reserved
- 4 TranslateE0 enabled
- 3 Boot enabled
- 2 PrintScreen enabled
- 1 Break enabled
- 0 ApoPendingBeep
- --------K-16AF50BX4B33-----------------------
- INT 16 - K3PLUS v6.00+ (API v2.0+) - CHECK IF FUNCTION SUPPORTED
- AX = AF50h
- BX = 4B33h ('K3')
- CH = function
- 00h get function flags
- CL = 00h
- Return: CX = supported function flags (see #0537)
- nonzero reserved for extensions
- SeeAlso: AX=AF20h,AX=AF4Dh,AX=AF51h,AX=AF80h
-
- Bitfields for K3PLUS supported function list:
- Bit(s) Description (Table 0537)
- 0 function 4Dh supported
- 1 function 50h supported
- 2-3 reserved (0)
- 4 function 20h supported
- 5 function 25h supported
- 6 function 51h supported
- 7 reserved (0)
- 8 function 80h supported
- 9 function 81h supported
- 10 function 82h supported
- 11-15 reserved (0)
- --------K-16AF51BX4B33-----------------------
- INT 16 - K3PLUS v6.00+ (API v2.00+) - SET OPTIONS
- AX = AF51h
- BX = 4B33h ('K3')
- CX = switches
- Return: AL = status
- 00h done
- CX = previous switch settings
- 01h switch not supported
- FFh other error
- SeeAlso: AX=AF4Dh,AX=AF50h,AX=AF80h
- --------K-16AF80BX4B33-----------------------
- INT 16 - K3PLUS v6.00+ (API v2.00+) - GET ORIGINAL INT 09h VECTOR
- AX = AF80h
- BX = 4B33h ('K3')
- Return: AL = status
- 00h not supported
- 81h if successful
- ES:CX -> original INT 09 handler
- SeeAlso: AX=AF4Dh,AX=AF50h,AX=AF81h,AX=AF82h
- --------K-16AF81BX4B33-----------------------
- INT 16 - K3PLUS v6.00+ (API v2.00+) - GET ORIGINAL INT 16h HANDLER
- AX = AF81h
- BX = 4B33h ('K3')
- Return: AL = status
- 00h not supported
- 82h if successful
- ES:CX -> original INT 16 handler
- SeeAlso: AX=AF4Dh,AX=AF50h,AX=AF80h,AX=AF82h
- --------K-16AF82BX4B33-----------------------
- INT 16 - K3PLUS v6.00+ (API v2.00+) - GET ORIGINAL INT 10h HANDLER
- AX = AF82h
- BX = 4B33h ('K3')
- Return: AL = status
- 00h not supported
- 83h if successful
- ES:CX -> original INT 10 handler
- Program: K3PLUS is an extended keyboard driver by Matthias Paul and Axel C.
- Frinke, originally based on the K3 extended German keyboard driver
- by Martin Gerdes published in c't magazine in 1988
- SeeAlso: AX=AF4Dh,AX=AF50h,AX=AF80h,AX=AF81h,INT 2F/AX=ED58h
- --------m-16B0B1-----------------------------
- INT 16 - VGARAM v1.00 - INSTALLATION CHECK
- AX = B0B1h
- ES:DI -> 6 byte signature "VGARAM"
- Return: AX = B1B0h if installed,
- DS:BX -> VGARAM Status byte: 0 = OFF, 1 = ON
- Program: VGARAM is